hermes-agent/tests/gateway
asdlem 6fb57bc9cf fix(telegram): render full clarify choice text in message body, use short button labels
When Telegram clarify prompts offer long choices, mobile clients
truncate the inline button labels, making options unreadable.
Previously only the question was shown in the message body with
truncated choice text in button labels.

Fix: append the full numbered option list to the message body
so users can read complete choice text on any client.  Buttons
now use short numeric labels (1, 2, ...) to avoid Telegram
truncation.  The 'Other (type answer)' button is unchanged.

Long choice labels are now rendered in full (not truncated to
57 chars + '...') since they appear in the body instead of
button labels.

Closes: #27497
2026-05-18 21:49:19 -07:00
..
__init__.py test: reorganize test structure and add missing unit tests 2026-02-26 03:20:08 +03:00
_plugin_adapter_loader.py test(gateway): isolate plugin adapter imports and guard the anti-pattern 2026-04-30 01:19:34 -07:00
conftest.py chore: ruff auto-fix PLR6201 resweep — tuple → set in membership tests (#27355) 2026-05-17 02:29:41 -07:00
feishu_helpers.py feat(feishu): operator-configurable bot admission and mention policy 2026-04-30 20:30:31 -07:00
restart_test_helpers.py fix(gateway): cap cached session sources with LRU eviction 2026-05-07 05:16:38 -07:00
test_7100_transient_failure_transcript.py fix(gateway): persist user message on transient agent failures (#7100) 2026-04-30 04:32:33 -07:00
test_active_session_text_merge.py fix(gateway): merge rapid TEXT follow-ups during active sessions (#4469) (#26822) 2026-05-16 02:25:41 -07:00
test_agent_cache.py test: remove 50 stale/broken tests to unblock CI (#22098) 2026-05-08 14:55:40 -07:00
test_allowed_channels_widening.py feat(gateway): add Telegram guest mention mode 2026-05-09 11:54:04 -07:00
test_allowlist_startup_check.py chore: ruff auto-fix PLR6201 resweep — tuple → set in membership tests (#27355) 2026-05-17 02:29:41 -07:00
test_api_server.py [agent] fix: harden api server response headers 2026-05-16 23:11:43 -07:00
test_api_server_bind_guard.py fix(security): enforce API_SERVER_KEY for non-loopback binding 2026-04-10 16:51:44 -07:00
test_api_server_jobs.py refactor: remove redundant local imports already available at module level 2026-04-21 00:50:58 -07:00
test_api_server_multimodal.py feat(api-server): inline image inputs on /v1/chat/completions and /v1/responses (#12969) 2026-04-20 04:16:13 -07:00
test_api_server_normalize.py fix(api_server): normalize array-based content parts in chat completions 2026-04-12 18:03:16 -07:00
test_api_server_runs.py fix(api_server): coerce stringified booleans in request payloads 2026-05-16 23:02:02 -07:00
test_api_server_toolset.py refactor: remove browser_close tool — auto-cleanup handles it (#5792) 2026-04-07 03:28:44 -07:00
test_approve_deny_commands.py fix(approval): wake blocked gateway approvals on session cleanup 2026-04-30 19:46:27 -07:00
test_auth_fallback.py fix(gateway,cron): activate fallback_model when primary provider auth fails 2026-04-24 05:35:43 -07:00
test_auto_continue.py feat: auto-continue interrupted agent work after gateway restart (#4493) 2026-04-14 16:56:49 -07:00
test_background_command.py test(gateway): include direct_messages_topic_id in telegram DM metadata assertions 2026-05-17 12:44:48 -07:00
test_background_process_notifications.py fix(gateway): preserve thread routing from cached live session sources 2026-05-07 05:16:38 -07:00
test_base_topic_sessions.py feat(gateway): add Telegram notification mode to suppress intermediate push notifications 2026-05-09 13:38:25 -07:00
test_bluebubbles.py fix(gateway): preserve underscores in plain-text identifiers 2026-05-16 23:11:43 -07:00
test_bundles_command.py feat(skills): add skill bundles — alias /<name> loads multiple skills (#28373) 2026-05-18 21:38:05 -07:00
test_busy_session_ack.py feat(busy): add 'steer' as a third display.busy_input_mode option (#16279) 2026-04-26 18:21:29 -07:00
test_busy_session_auth_bypass.py fix(gateway): enforce auth check in busy-session path to prevent unauthorized injection (#17775) 2026-04-30 04:29:15 -07:00
test_cancel_background_drain.py fix(gateway): cancel_background_tasks must drain late-arrivals (#12471) 2026-04-19 01:48:42 -07:00
test_channel_directory.py fix(Slack): resolve Slack channels by raw ID and enumerate joined channels 2026-04-26 12:29:02 -07:00
test_clean_shutdown_marker.py fix: update tests for resume_pending semantics + add AUTHOR_MAP entries 2026-05-03 03:54:03 -07:00
test_command_bypass_active_session.py refactor(commands): drop /provider, /plan handler, and clean up slash registry (#15047) 2026-04-24 03:10:52 -07:00
test_complete_path_at_filter.py fix(tui): restore voice/panic handlers + scope fuzzy paths to cwd 2026-04-23 19:38:33 -05:00
test_compress_command.py fix(compress): abort instead of dropping messages when summary LLM fails (#28102) 2026-05-18 10:19:40 -07:00
test_compress_focus.py fix(compress): don't reach into ContextCompressor privates from /compress (#15039) 2026-04-24 02:55:43 -07:00
test_compress_plugin_engine.py fix(compress): don't reach into ContextCompressor privates from /compress (#15039) 2026-04-24 02:55:43 -07:00
test_config.py feat(discord): channel history backfill for multi-user sessions 2026-05-14 15:50:57 -07:00
test_config_cwd_bridge.py chore: ruff auto-fix PLR6201 resweep — tuple → set in membership tests (#27355) 2026-05-17 02:29:41 -07:00
test_config_env_bridge_authority.py fix(gateway): shutdown + restart hygiene (drain timeout, false-fatal, success log) (#18761) 2026-05-02 02:08:06 -07:00
test_debug_command.py fix(debug): sweep expired pending pastes on slash debug paths 2026-04-22 11:59:39 -07:00
test_delivery.py fix(gateway): preserve case-sensitive chat IDs in DeliveryTarget.parse 2026-05-01 14:01:26 -07:00
test_destructive_slash_confirm.py feat: confirm prompt for destructive slash commands (#4069) (#22687) 2026-05-09 11:04:46 -07:00
test_dingtalk.py test(ci): stabilize shared optional dependency baselines 2026-05-13 17:32:22 -07:00
test_discord_allowed_channels.py fix(discord): honor wildcard '*' in ignored_channels and free_response_channels 2026-04-24 03:04:42 -07:00
test_discord_allowed_mentions.py fix(discord): default allowed_mentions to block @everyone and role pings 2026-04-17 04:08:42 -07:00
test_discord_attachment_download.py fix(discord): route attachment downloads through authenticated bot session (#11568) 2026-04-17 04:59:03 -07:00
test_discord_bot_auth_bypass.py fix(discord): harden DISCORD_ALLOWED_ROLES and cover gateway layer 2026-04-17 05:48:26 -07:00
test_discord_bot_filter.py feat(discord): add DISCORD_ALLOW_BOTS config for bot message filtering (inspired by openclaw) 2026-03-09 02:20:57 -07:00
test_discord_channel_controls.py test: disable text batching in existing adapter tests 2026-04-09 23:25:27 -07:00
test_discord_channel_prompts.py refactor: remove smart_model_routing feature (#12732) 2026-04-19 18:12:55 -07:00
test_discord_channel_skills.py test(discord): add tests for channel_skill_bindings resolution 2026-04-10 05:19:26 -07:00
test_discord_clarify_buttons.py feat(discord): render clarify choices as buttons 2026-05-14 07:26:43 -07:00
test_discord_component_auth.py fix(gateway/discord): require allowlist auth on slash commands 2026-05-03 03:44:55 -07:00
test_discord_connect.py fix(discord): narrow rate-limit catch and move sync state under gateway/ 2026-05-06 18:12:35 -07:00
test_discord_document_handling.py feat(discord): allow_any_attachment config to accept arbitrary file types 2026-05-16 20:26:18 -07:00
test_discord_free_response.py feat(discord): default history backfill on, expand to per-user + threads 2026-05-14 15:50:57 -07:00
test_discord_imports.py fix: defer discord adapter annotations 2026-03-14 09:32:05 -07:00
test_discord_media_metadata.py feat(discord): add /thread command, auto_thread config, and media metadata fix (#1178) 2026-03-13 08:52:54 -07:00
test_discord_model_picker.py test(gateway): unify discord mock via shared conftest; drop duplicated mock in model_picker test 2026-04-24 03:33:29 -07:00
test_discord_opus.py fix: add macOS Homebrew Opus fallback and fix shutdown dict iteration 2026-03-14 14:27:21 +03:00
test_discord_race_polish.py refactor(discord): slim down the race-polish fix (#12644) 2026-04-19 11:08:10 -07:00
test_discord_reactions.py fix(gateway): avoid false failure reactions on restart cancellation 2026-04-10 03:52:00 -07:00
test_discord_reply_mode.py fix(gateway): load reply_to_mode from config.yaml for Discord and Telegram 2026-05-05 04:58:23 -07:00
test_discord_roles_dm_scope.py fix(discord): route DM role-auth opt-in through config.yaml (not env var) 2026-05-07 05:51:56 -07:00
test_discord_send.py fix(discord): typing indicator task not cleaned up after API error 2026-05-10 22:41:26 -07:00
test_discord_slash_auth.py fix(discord): extend role-scope fix to slash surface + fixture update 2026-05-07 05:51:56 -07:00
test_discord_slash_commands.py fix(gateway/discord): require allowlist auth on slash commands 2026-05-03 03:44:55 -07:00
test_discord_system_messages.py chore: ruff auto-fix PLR6201 resweep — tuple → set in membership tests (#27355) 2026-05-17 02:29:41 -07:00
test_discord_thread_persistence.py fix(gateway): ensure deterministic thread eviction in helpers 2026-05-05 10:13:55 -07:00
test_display_config.py test(telegram): cover env-clamped helper + adaptive text-batch tiers 2026-05-10 22:22:25 -07:00
test_dm_topics.py fix(telegram): normalize dm threads and retry control sends 2026-05-10 18:09:31 -07:00
test_document_cache.py feat: add .zip document support and auto-mount cache dirs into remote backends (#4846) 2026-04-03 13:16:26 -07:00
test_duplicate_reply_suppression.py fix(gateway): prevent duplicate final send when only cosmetic edit failed 2026-05-14 14:51:07 -07:00
test_email.py fix(email): send IMAP ID extension to support 163/NetEase mailbox 2026-05-09 13:35:50 -07:00
test_ephemeral_reply.py feat(gateway): auto-delete slash-command system notices after TTL (#18266) 2026-04-30 23:05:48 -07:00
test_extract_local_files.py feat(gateway): deliverable mode — ship artifacts as native uploads from any agent surface (#27813) 2026-05-18 02:14:43 -07:00
test_fallback_eviction.py fix: don't evict cached agent on failed runs — prevents MCP restart loop (#7539) 2026-04-10 21:16:56 -07:00
test_fast_command.py fix(gateway): guard against None request_overrides in _build_api_kwargs 2026-04-28 06:57:23 -07:00
test_feishu.py fix(feishu): keep topic replies in threads 2026-05-06 10:52:51 -07:00
test_feishu_approval_buttons.py feat(feishu): add native update prompt cards 2026-05-09 02:32:55 -07:00
test_feishu_bot_admission.py test(ci): stabilize shared optional dependency baselines 2026-05-13 17:32:22 -07:00
test_feishu_bot_auth_bypass.py feat(feishu): operator-configurable bot admission and mention policy 2026-04-30 20:30:31 -07:00
test_feishu_comment.py feat: add Feishu document comment intelligent reply with 3-tier access control 2026-04-17 19:04:11 -07:00
test_feishu_comment_rules.py feat: add Feishu document comment intelligent reply with 3-tier access control 2026-04-17 19:04:11 -07:00
test_feishu_onboard.py fix(gateway): use monotonic deadlines in QR onboarding flows 2026-05-07 05:09:39 -07:00
test_fresh_reset_skill_injection.py fix(gateway): re-inject topic-bound skill after /new or /reset 2026-04-30 20:29:19 -07:00
test_gateway_command_help.py fix: sanitize Telegram help command mentions 2026-05-03 17:00:09 -07:00
test_gateway_inactivity_timeout.py fix(gateway): add staged inactivity warning before timeout escalation 2026-04-08 20:01:06 -07:00
test_gateway_shutdown.py fix(gateway,cron): close ephemeral agents + reap stale aux clients (salvage #13979) (#16598) 2026-04-27 07:41:42 -07:00
test_goal_max_turns_config.py fix(gateway): honor configured goal turn budget 2026-05-07 06:31:08 -07:00
test_goal_status_notice.py fix(gateway): defer goal status notices until after response delivery 2026-05-07 17:33:09 -07:00
test_goal_verdict_send.py revert: roll back /goal checklist + /subgoal feature stack (#23813) 2026-05-11 07:06:27 -07:00
test_google_chat.py test(gateway): accept trust_env in fake aiohttp ClientSession lambdas 2026-05-17 12:44:48 -07:00
test_home_target_env_var.py fix(gateway): preserve home-channel thread targets across restart notifications 2026-05-03 08:47:49 -07:00
test_homeassistant.py test: remove 169 change-detector tests across 21 files (#11472) 2026-04-17 01:05:09 -07:00
test_hooks.py feat(gateway): expose plugin slash commands natively on all platforms + decision-capable command hook 2026-04-22 16:23:21 -07:00
test_insights_unicode_flags.py fix(model-switch): normalize Unicode dashes from Telegram/iOS input 2026-04-15 17:54:16 -07:00
test_internal_event_bypass_pairing.py test(conftest): reset module-level state + unset platform allowlists (#13400) 2026-04-21 01:33:10 -07:00
test_interrupt_key_match.py test(gateway): cover photo burst interrupt regressions 2026-03-15 03:50:45 -07:00
test_irc_adapter.py feat(plugins): add standalone_sender_fn for out-of-process cron delivery 2026-05-09 02:56:29 -07:00
test_kanban_notifier.py test(kanban): cover redeliver-on-cycle + flip stale unsub-on-abnormal-event tests 2026-05-10 14:27:59 -07:00
test_keep_typing_timeout.py fix(gateway): keep typing indicator alive across slow send_typing calls (#16763) 2026-04-27 19:09:32 -07:00
test_line_plugin.py feat(gateway): add LINE Messaging API platform plugin (#23197) 2026-05-10 06:40:46 -07:00
test_matrix.py fix(matrix): warn on clock-skew silent message drops (#12614) (#27330) 2026-05-17 00:28:24 -07:00
test_matrix_exec_approval.py test(matrix): set user_id in approval-reaction test to bypass defensive self-drop 2026-04-27 21:22:44 -07:00
test_matrix_mention.py test(matrix): adapt outbound-mention notice test to current _send_simple_message API 2026-04-27 21:22:44 -07:00
test_matrix_voice.py fix(ci): resolve 4 pre-existing main failures (docs lint + 3 stale tests) (#11373) 2026-04-16 20:43:41 -07:00
test_mattermost.py test: remove 169 change-detector tests across 21 files (#11472) 2026-04-17 01:05:09 -07:00
test_media_download_retry.py fix(slack): harden attachment handling 2026-04-26 18:20:17 -07:00
test_media_extraction.py fix(gateway): prevent TTS voice messages from accumulating across turns 2026-02-28 03:38:27 -05:00
test_memory_monitor.py Port from cline/cline#10343: periodic gateway memory logging (#27102) 2026-05-16 12:55:23 -07:00
test_message_deduplicator.py Fix MessageDeduplicator max_size enforcement 2026-04-26 18:51:51 -07:00
test_mirror.py fix(gateway): avoid cross-user mirror writes in per-user group sessions 2026-04-26 18:31:24 -07:00
test_model_command_custom_providers.py fix: extract custom_provider_slug() helper, harden gateway test 2026-04-10 03:07:00 -07:00
test_model_switch_persistence.py fix(gateway): apply /model session overrides so switch persists across messages 2026-04-10 02:58:42 -07:00
test_msgraph_webhook.py fix(msgraph_webhook): harden auth surface + IP allowlisting + response hygiene 2026-05-08 10:29:58 -07:00
test_native_image_buffer_isolation.py fix(gateway): isolate pending native image paths by session 2026-04-30 20:26:35 -07:00
test_notice_delivery.py feat(gateway): private notice delivery and Slack format_message fixes 2026-05-01 13:33:06 -07:00
test_pairing.py fix(pairing): enforce lockout on approve_code, not just generate_code (#10195) (#21325) 2026-05-07 07:18:21 -07:00
test_pending_drain_no_recursion.py test(gateway): pin cleanup invariants for #17758 in-band drain hand-off 2026-04-30 05:00:25 -07:00
test_pending_drain_race.py fix(gateway): close pending-drain and late-arrival races in base adapter (#12371) 2026-04-18 19:32:26 -07:00
test_pending_event_none.py fix(gateway): stop typing loops on session interrupt 2026-04-19 03:03:57 -07:00
test_pii_redaction.py fix: remove 115 verified dead code symbols across 46 production files 2026-04-10 03:44:43 -07:00
test_platform_base.py feat(gateway): support [[as_document]] directive for skill media routing 2026-05-07 05:20:10 -07:00
test_platform_connected_checkers.py chore: ruff auto-fix PLR6201 resweep — tuple → set in membership tests (#27355) 2026-05-17 02:29:41 -07:00
test_platform_http_client_limits.py fix(gateway): tighten httpx keepalive and close whatsapp typing-response leak (#18451) 2026-05-02 02:23:37 -07:00
test_platform_reconnect.py fix(gateway): keep running when platforms fail; add per-platform circuit breaker + /platform (#26600) 2026-05-15 14:32:14 -07:00
test_platform_registry.py refactor(plugins): add apply_yaml_config_fn registry hook 2026-05-13 22:20:30 -07:00
test_plugin_platform_interface.py feat(irc): add interactive setup 2026-04-29 21:56:51 -07:00
test_post_delivery_callback_chaining.py feat(gateway): opt-in cleanup of temporary progress bubbles (#21186) 2026-05-07 05:04:37 -07:00
test_pre_gateway_dispatch.py feat(plugins): add pre_gateway_dispatch hook 2026-04-24 03:02:03 -07:00
test_proxy_mode.py fix(telegram): honor no_proxy for explicit proxy setup 2026-04-24 14:31:04 -07:00
test_qqbot.py chore: ruff auto-fix PLR6201 resweep — tuple → set in membership tests (#27355) 2026-05-17 02:29:41 -07:00
test_queue_consumption.py fix(gateway): /queue is now a true FIFO — each invocation gets its own turn (#16175) 2026-04-26 11:55:09 -07:00
test_reasoning_command.py fix: coerce show_reasoning and guard_agent_created config bools 2026-04-30 20:40:46 -07:00
test_reload_skills_command.py refactor(reload-skills): queue note for next turn, drop cache invalidation + agent tool 2026-04-29 21:07:47 -07:00
test_reload_skills_discord_resync.py fix(discord): /reload-skills now refreshes the /skill autocomplete live (#18754) 2026-05-02 02:00:11 -07:00
test_replay_entry_fields.py fix(gateway): preserve reasoning_content, codex_message_items, finish_reason on transcript replay (#22839) 2026-05-09 14:47:33 -07:00
test_reply_to_injection.py fix(gateway): always inject reply-to pointer, not just when quoted text is absent (#13676) 2026-04-21 13:33:02 -07:00
test_restart_drain.py test(restart_drain): assert i18n catalog resolved (#22266) 2026-05-17 02:31:18 -07:00
test_restart_notification.py fix(gateway): preserve thread routing from cached live session sources 2026-05-07 05:16:38 -07:00
test_restart_redelivery_dedup.py fix(gateway): ignore redelivered /restart after PTB offset ACK fails (#11940) 2026-04-17 21:17:33 -07:00
test_restart_resume_pending.py chore: ruff auto-fix PLR6201 resweep — tuple → set in membership tests (#27355) 2026-05-17 02:29:41 -07:00
test_resume_command.py feat(memory): notify providers on mid-process session_id rotation (#17409) 2026-04-29 04:57:22 -07:00
test_retry_replacement.py test: lock retry replacement semantics 2026-03-14 21:19:22 -07:00
test_retry_response.py test(gateway): add regression test for /retry response fix 2026-03-10 23:34:52 -07:00
test_run_cleanup_progress.py feat(gateway): opt-in cleanup of temporary progress bubbles (#21186) 2026-05-07 05:04:37 -07:00
test_run_progress_interrupt.py fix(gateway): suppress tool-progress bubbles after interrupt (#16034) 2026-04-26 05:47:37 -07:00
test_run_progress_topics.py fix(feishu): keep topic replies in threads 2026-05-06 10:52:51 -07:00
test_runner_fatal_adapter.py fix(gateway): keep running when platforms fail; add per-platform circuit breaker + /platform (#26600) 2026-05-15 14:32:14 -07:00
test_runner_startup_failures.py fix(gateway): keep running when platforms fail; add per-platform circuit breaker + /platform (#26600) 2026-05-15 14:32:14 -07:00
test_running_agent_session_toggles.py refactor: drop persist_session plumbing + fix broken btw mid-turn bypass (#16075) 2026-04-26 07:15:23 -07:00
test_runtime_env_reload_config_authority.py fix(gateway): preserve max turns after env reload 2026-05-07 05:49:16 -07:00
test_runtime_footer.py feat(gateway): opt-in runtime-metadata footer on final replies (#17026) 2026-04-28 06:50:04 -07:00
test_safe_adapter_disconnect.py fix(gateway): cap adapter disconnect during stop 2026-05-08 18:50:25 -07:00
test_send_image_file.py feat(telegram): auto-discover fallback IPs via DoH when api.telegram.org is unreachable (#3376) 2026-03-27 04:03:13 -07:00
test_send_multiple_images.py feat(gateway): native send_multiple_images for Telegram, Discord, Slack, Mattermost, Email 2026-04-30 04:28:08 -07:00
test_send_retry.py fix(telegram): prevent duplicate message delivery on send timeout (#5153) 2026-04-04 19:05:34 -07:00
test_session.py feat(discord): channel history backfill for multi-user sessions 2026-05-14 15:50:57 -07:00
test_session_boundary_hooks.py chore: ruff auto-fix PLR6201 resweep — tuple → set in membership tests (#27355) 2026-05-17 02:29:41 -07:00
test_session_boundary_security_state.py fix(gateway): clear slash-confirm state during session boundary cleanup 2026-05-09 14:18:20 +03:00
test_session_dm_thread_seeding.py fix(gateway): remove DM thread session seeding to prevent cross-thread contamination (#7084) 2026-04-10 03:01:59 -07:00
test_session_env.py fix(tests): resolve remaining CI failures — commit_memory_session, already_sent, timezone leak, session env (#10785) 2026-04-16 02:26:14 -07:00
test_session_hygiene.py fix(compress): abort instead of dropping messages when summary LLM fails (#28102) 2026-05-18 10:19:40 -07:00
test_session_info.py fix(context): honor custom_providers context_length on /model switch + bump probe tier to 256K (#15844) 2026-04-25 18:47:53 -07:00
test_session_list_allowed_sources.py fix(sessions): /save lands under $HERMES_HOME, widen browse+TUI picker, force-refresh ollama-cloud on setup (#16296) 2026-04-26 18:49:48 -07:00
test_session_model_override_routing.py chore: ruff auto-fix PLR6201 resweep — tuple → set in membership tests (#27355) 2026-05-17 02:29:41 -07:00
test_session_model_reset.py fix(gateway): clear stale pending model note on session reset 2026-04-26 19:01:50 -07:00
test_session_race_guard.py fix(gateway): preserve document type when merging queued events 2026-04-30 20:37:27 -07:00
test_session_reset_notify.py fix(session): persist auto-reset state across gateway restarts 2026-05-15 01:25:42 -07:00
test_session_split_brain_11016.py fix(gateway): guard-match the finally-block _active_sessions delete 2026-04-23 05:15:52 -07:00
test_session_state_cleanup.py fix(gateway): consolidate per-session cleanup; close SessionDB on shutdown (#11800) 2026-04-17 15:18:23 -07:00
test_session_store_prune.py fix(gateway): pass session_key (not session_id) to active-process check during prune 2026-04-20 03:10:19 -07:00
test_setup_feishu.py fix: salvage follow-ups for Feishu QR onboarding (#7706) 2026-04-12 13:05:56 -07:00
test_shared_group_sender_prefix.py fix(gateway): preserve sender attribution in shared group sessions 2026-04-21 00:54:46 -07:00
test_shutdown_cache_cleanup.py fix(gateway): clean up cached agents on shutdown (#11205) 2026-04-26 12:51:53 -07:00
test_shutdown_forensics.py feat(gateway): shutdown forensics — non-blocking diag, per-phase timing, stale-unit warning (#23285) 2026-05-10 09:01:51 -07:00
test_shutdown_memory_provider_messages.py fix(gateway): pass session messages to shutdown_memory_provider (#15165) 2026-04-27 06:41:16 -07:00
test_signal.py fix(signal): read groupV2.id in envelope, fall back to legacy groupInfo (#27051) 2026-05-16 11:53:57 -07:00
test_signal_format.py feat(gateway/signal): native formatting, reply quotes, and reactions 2026-04-29 04:38:17 -07:00
test_signal_rate_limit.py feat(gateway/signal): add support for multiple images sending 2026-04-30 04:28:08 -07:00
test_simplex_plugin.py feat(gateway): add SimpleX Chat platform plugin 2026-05-15 01:41:30 -07:00
test_slack.py feat(slack): support !cmd as alternate prefix for slash commands in threads (#25355) 2026-05-13 18:58:14 -07:00
test_slack_approval_buttons.py fix(slack): preserve thread-parent context when cron/bot posted the parent 2026-04-26 12:35:16 -07:00
test_slack_channel_skills.py feat(gateway/slack): support channel_skill_bindings 2026-04-26 18:25:41 -07:00
test_slack_mention.py feat(slack): add allowed_channels whitelist config 2026-05-07 06:54:29 -07:00
test_slash_access.py feat(gateway): per-platform admin/user split for slash commands (salvage of #4443) (#23373) 2026-05-10 12:33:54 -07:00
test_slash_access_dispatch.py feat(gateway): per-platform admin/user split for slash commands (salvage of #4443) (#23373) 2026-05-10 12:33:54 -07:00
test_sms.py test(sms): use clear=True in test_missing_phone_number_is_non_retryable 2026-05-04 05:25:09 -07:00
test_sse_agent_cancel.py fix(api-server): cancel orphaned agent + true interrupt on SSE disconnect (salvage #3399) (#3427) 2026-03-27 11:33:19 -07:00
test_ssl_certs.py fix(gateway): SSL certificate auto-detection for NixOS and non-standard systems 2026-03-15 23:04:34 -07:00
test_status.py fix(gateway): consult lock record argv when cmdline unreadable in scoped-lock stale check 2026-05-12 16:33:09 -07:00
test_status_command.py fix(gateway): snapshot callback generation after agent binds it, not before 2026-04-30 20:41:18 -07:00
test_steer_command.py feat(steer): /steer <prompt> injects a mid-run note after the next tool call (#12116) 2026-04-18 04:17:18 -07:00
test_step_callback_compat.py fix(gateway): normalize step_callback prev_tools for backward compat 2026-04-02 20:54:27 -07:00
test_sticker_cache.py test: add unit tests for 8 untested modules (batch 3) (#191) 2026-03-01 05:28:12 -08:00
test_stream_consumer.py test(telegram): regression coverage for edit overflow split-and-deliver 2026-05-10 22:02:56 -07:00
test_stream_consumer_draft.py test(telegram): native-draft transport coverage + docs 2026-05-10 20:02:50 -07:00
test_stream_consumer_fresh_final.py feat(telegram): send fresh finals for stale preview streams (port openclaw#72038) (#16261) 2026-04-26 17:26:37 -07:00
test_stream_consumer_thread_routing.py test(thread-routing): handle both lark-SDK-present and absent paths 2026-05-10 15:20:40 -07:00
test_stt_config.py fix(gateway): preserve queued voice events for STT 2026-04-11 14:43:53 -07:00
test_stuck_loop.py fix: break stuck session resume loops after repeated restarts (#7536) 2026-04-14 17:08:35 -07:00
test_teams.py test(gateway): accept trust_env in fake aiohttp ClientSession lambdas 2026-05-17 12:44:48 -07:00
test_teams_pipeline_runtime_wiring.py fix(teams-pipeline): drop-scheduler fallback + test wiring for enablement gate 2026-05-08 11:18:14 -07:00
test_telegram_approval_buttons.py fix(telegram): escape dynamic markdown in callback flows 2026-05-14 07:47:52 -07:00
test_telegram_caption_merge.py fix(telegram): replace substring caption check with exact line-by-line match 2026-04-07 14:08:59 -07:00
test_telegram_clarify_buttons.py fix(telegram): render full clarify choice text in message body, use short button labels 2026-05-18 21:49:19 -07:00
test_telegram_conflict.py refactor: extract shared helpers to deduplicate repeated code patterns (#7917) 2026-04-11 13:59:52 -07:00
test_telegram_documents.py fix: route Telegram image documents through photo handling 2026-05-07 04:51:46 -07:00
test_telegram_format.py fix(telegram): escape dynamic markdown in callback flows 2026-05-14 07:47:52 -07:00
test_telegram_group_gating.py fix: follow-up for salvaged PR #22263 2026-05-09 11:54:04 -07:00
test_telegram_mention_boundaries.py refactor(telegram): use entity-only mention detection 2026-04-20 00:10:22 -07:00
test_telegram_model_picker.py fix(telegram): restore model-switch success path + author map 2026-05-14 07:47:52 -07:00
test_telegram_network.py fix(gateway): keep DoH-confirmed Telegram IPs that match system DNS (#14520) 2026-05-05 04:42:59 -07:00
test_telegram_network_reconnect.py fix(telegram): probe polling liveness after reconnect to detect wedged Updater 2026-05-02 01:55:04 -07:00
test_telegram_photo_interrupts.py fix(tests): fix 78 CI test failures and remove dead test (#9036) 2026-04-13 10:50:24 -07:00
test_telegram_reactions.py fix(telegram): clear in-progress reaction on cancelled processing (#24628) 2026-05-12 17:02:29 -07:00
test_telegram_reply_mode.py fix(gateway): load reply_to_mode from config.yaml for Discord and Telegram 2026-05-05 04:58:23 -07:00
test_telegram_reply_quote.py fix(telegram): honor message.quote for partial-quote reply context 2026-05-09 11:10:36 -07:00
test_telegram_text_batch_perf.py test(telegram): cover env-clamped helper + adaptive text-batch tiers 2026-05-10 22:22:25 -07:00
test_telegram_text_batching.py fix(telegram): aggregate split text messages before dispatching (#1674) 2026-03-17 02:49:57 -07:00
test_telegram_thread_fallback.py test(gateway): include direct_messages_topic_id in telegram DM metadata assertions 2026-05-17 12:44:48 -07:00
test_telegram_topic_mode.py feat: confirm prompt for destructive slash commands (#4069) (#22687) 2026-05-09 11:04:46 -07:00
test_telegram_webhook_secret.py fix(telegram): require TELEGRAM_WEBHOOK_SECRET in webhook mode (#13527) 2026-04-21 06:23:09 -07:00
test_text_batching.py fix(discord): shield text-batch flush from follow-up cancel (#12444) 2026-04-19 00:09:38 -07:00
test_title_command.py fix(cli,gateway): surface title errors from /new <name> 2026-05-04 03:14:50 -07:00
test_transcript_offset.py chore: ruff auto-fix PLR6201 resweep — tuple → set in membership tests (#27355) 2026-05-17 02:29:41 -07:00
test_tts_media_routing.py fix(dashboard): UI polish — modals, layout, consistency, test fixes 2026-05-12 13:59:22 -04:00
test_unauthorized_dm_behavior.py fix(telegram): preserve pre-#17686 chat-ID-in-_USERS configs + doc split 2026-04-29 21:07:55 -07:00
test_unavailable_skill_hint.py fix(gateway): match disabled/optional skills by frontmatter slug, not dir name (#18753) 2026-05-02 02:00:09 -07:00
test_unknown_command.py feat(gateway): expose plugin slash commands natively on all platforms + decision-capable command hook 2026-04-22 16:23:21 -07:00
test_update_command.py fix(gateway): preserve thread routing for /update progress and prompts 2026-04-30 20:19:23 -07:00
test_update_streaming.py fix(gateway): avoid zsh status variable in update wrapper 2026-05-16 23:11:43 -07:00
test_usage_command.py feat(/usage): append account limits section in CLI and gateway 2026-04-21 01:56:35 -07:00
test_verbose_command.py fix(dashboard): UI polish — modals, layout, consistency, test fixes 2026-05-12 13:59:22 -04:00
test_vision_memory_leak.py fix(memory): narrow scrub surface to known wrapper boundaries 2026-04-27 12:37:33 -07:00
test_voice_command.py test(gateway): include direct_messages_topic_id in telegram DM metadata assertions 2026-05-17 12:44:48 -07:00
test_voice_mode_platform_isolation.py test(voice): update existing voice_mode tests for platform-prefixed keys 2026-04-19 22:36:00 -07:00
test_weak_credential_guard.py fix(gateway): reject known-weak placeholder credentials at startup 2026-04-12 18:05:41 -07:00
test_webhook_adapter.py fix(webhook): widen INSECURE_NO_AUTH loopback check + tests + docs 2026-05-07 07:38:43 -07:00
test_webhook_deliver_only.py fix(webhook): widen INSECURE_NO_AUTH loopback check + tests + docs 2026-05-07 07:38:43 -07:00
test_webhook_dynamic_routes.py feat(webhook): hermes webhook CLI + skill for event-driven subscriptions (#3578) 2026-03-28 14:33:35 -07:00
test_webhook_integration.py fix(gateway/webhook): don't pop delivery_info on send 2026-04-07 17:27:09 -07:00
test_webhook_signature_rate_limit.py fix(webhook): validate HMAC signature before rate limiting (#12544) 2026-04-19 22:45:08 -07:00
test_wecom.py fix(gateway): use monotonic deadlines in QR onboarding flows 2026-05-07 05:09:39 -07:00
test_wecom_callback.py feat(gateway): add WeCom callback-mode adapter for self-built apps 2026-04-11 15:22:49 -07:00
test_weixin.py fix(weixin): wrap long copy-unfriendly lines 2026-05-07 06:08:06 -07:00
test_whatsapp_connect.py fix(gateway): keep running when platforms fail; add per-platform circuit breaker + /platform (#26600) 2026-05-15 14:32:14 -07:00
test_whatsapp_formatting.py feat(whatsapp): surface quoted reply metadata 2026-05-13 23:11:20 -07:00
test_whatsapp_group_gating.py fix(whatsapp): drop status broadcasts and channel newsletters before agent dispatch (#25845) 2026-05-14 09:59:03 -07:00
test_whatsapp_reply_prefix.py feat: OpenAI-compatible API server + WhatsApp configurable reply prefix (#1756) 2026-03-17 10:44:37 -07:00
test_ws_auth_retry.py fix: resolve CI test failures — add missing functions, fix stale tests (#9483) 2026-04-14 01:43:45 -07:00
test_yolo_command.py refactor: remove dead code — 1,784 lines across 77 files (#9180) 2026-04-13 16:32:04 -07:00