hermes-agent/tests/gateway
Shashwat Gokhe 505bc27d8d fix(gateway): classify mixed attachments per-attachment + transcode uncommon image formats
A document attached alongside an image in the same Discord message was
swept into the vision pipeline and 400'd the whole turn ("Could not
process image"), and was simultaneously never surfaced to the agent as a
readable file. Restores the "any file type works" contract for mixed
messages and fixes the HTTP 400.

Bug 1 — mixed attachments: the inbound routing loop keyed image/audio/video
classification off the message-level type (PHOTO/VOICE/AUDIO), so a doc in
a PHOTO message landed in image_paths and poisoned the vision call. The
document context-note path was gated on message_type == DOCUMENT, so that
same doc never reached the agent at all. Now classification is
per-attachment (trust each attachment's own MIME; fall back to the
message-level type only when MIME is unknown), via shared _event_media_is_*
helpers used by both _build_media_placeholder and the main inbound loop.
The document note now fires for any non-image/audio/video attachment
regardless of message-level type.

Bug 2 — uncommon formats: AVIF/HEIC/BMP/TIFF/ICO produced the same generic
400 because providers only accept PNG/JPEG/GIF/WEBP. image_routing now
transcodes those to PNG via Pillow before declaring media_type, skipping
cleanly (logged) if Pillow/plugins are missing. SVG is vector — Pillow
can't rasterize it — so it's skipped rather than transcoded.

Closes #25935.

Co-authored-by: LeonSGP43 <cine.dreamer.one@gmail.com>
Co-authored-by: cypres0099 <74935762+cypres0099@users.noreply.github.com>
2026-06-27 19:26:04 -07:00
..
platforms feat(state.db): persist platform_message_id; restore yuanbao exact-id recall 2026-05-20 13:00:57 -07:00
relay feat(relay): multi-platform-per-agent — list identity, provision-loop, N-hello, per-frame egress (Phase 1.5) (#52830) 2026-06-26 17:32:46 +10:00
__init__.py
_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 refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
feishu_helpers.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
restart_test_helpers.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_7100_transient_failure_transcript.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_13121_shutdown_inflight_transcript_flush.py fix(gateway): persist in-flight transcript on restart/shutdown drain timeout (#50312) 2026-06-21 11:57:15 -07:00
test_35809_auto_reset_clean_context.py fix(gateway): clear bloated compression binding on compression-exhaustion auto-reset 2026-06-13 06:38:29 -07:00
test_35994_reset_button_deadlock.py fix(gateway): offload agent cleanup off the event loop in /new reset (#35994) 2026-06-25 00:27:22 +05:30
test_42039_duplicate_user_message.py fix(gateway): dedupe user turns on transient failure (#47237) 2026-06-26 00:11:17 +05:30
test_48031_model_switch_after_auto_reset.py fix(gateway): consume was_auto_reset so /model survives session auto-reset 2026-06-24 19:12:44 +05:30
test_active_session_text_merge.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_agent_cache.py fix(gateway): defer cross-process cache cleanup off the cache lock (#52197) (#52761) 2026-06-25 18:58:47 -07:00
test_allowed_channels_widening.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -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 feat(api-server): configurable concurrent-run cap to prevent DoS (#50007) 2026-06-21 07:26:03 -07:00
test_api_server_bind_guard.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_api_server_jobs.py hardening(api-server): scan cron prompts on REST create/update for parity with the agent tool 2026-06-07 10:04:57 -07:00
test_api_server_multimodal.py
test_api_server_normalize.py perf(api-server): normalize chat content linearly (#46079) 2026-06-14 03:25:49 -07:00
test_api_server_runs.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_api_server_toolset.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_approval_prompt_redaction.py fix(gateway): redact credentials from approval prompts before sending to clients (#48456) (#50767) 2026-06-22 11:39:45 +00:00
test_approve_deny_commands.py fix(gateway): remove process-global HERMES_SESSION_KEY write that misroutes approval prompts across concurrent sessions 2026-06-27 04:31:37 +05:30
test_async_delivery_capability.py fix(api-server): stop silently promising async delivery on stateless HTTP path (#50319) 2026-06-21 12:15:14 -07:00
test_auth_fallback.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_auto_continue.py fix(gateway): break the restart loop at the source on session resume 2026-06-19 16:59:58 -07:00
test_auto_voice_reply_format.py fix(gateway): use OGG for Telegram auto TTS 2026-06-07 18:05:58 -07:00
test_background_command.py fix(gateway): route /background result media by type 2026-06-02 16:55:25 -07:00
test_background_process_notifications.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_base_topic_sessions.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_bluebubbles.py feat(bluebubbles): support group mention gating 2026-06-01 18:52:05 -07:00
test_bounded_adapter_teardown.py fix(gateway): bound adapter teardown awaits on the stop path (#14128) 2026-06-27 19:05:04 -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 fix(session): finalize owned SQLite session rows on AIAgent.close() 2026-06-21 11:35:09 -07:00
test_busy_session_auth_bypass.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_cached_agent_max_iterations.py test(gateway): real cached-agent max_iterations regression test 2026-06-19 06:31:13 -07:00
test_cancel_background_drain.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_channel_directory.py fix: harden WhatsApp target alias salvage 2026-06-15 05:51:47 -07:00
test_clean_shutdown_marker.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_command_bypass_active_session.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_complete_path_at_filter.py
test_compress_command.py fix: use self._session_db directly + add regression test 2026-06-26 00:50:40 +05:30
test_compress_focus.py fix: use self._session_db directly + add regression test 2026-06-26 00:50:40 +05:30
test_compress_plugin_engine.py fix: use self._session_db directly + add regression test 2026-06-26 00:50:40 +05:30
test_compression_concurrent_sessions.py test(compression): pin rotation-fallback tests to in_place=False ahead of default flip 2026-06-25 12:56:05 -07:00
test_compression_failure_session_sync.py fix(gateway): sync compression session splits before failures 2026-06-13 04:51:59 -07:00
test_compression_session_id_persistence.py test(gateway): add compression session_id rotation integration tests (#34089) 2026-06-07 22:39:51 -07:00
test_config.py fix(telegram): gate rich draft previews separately 2026-06-24 18:11:14 -07:00
test_config_cwd_bridge.py fix: make profile subprocess HOME policy explicit 2026-06-14 03:20:21 -07:00
test_config_driven_access_policy.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_config_env_bridge_authority.py gateway: debounce queued text follow-ups 2026-05-24 01:31:45 -07:00
test_cron_fire_webhook.py fix(cron): complete plugins.cron_providers rename in 2 missed test files 2026-06-23 23:39:22 -07:00
test_debug_command.py
test_dedupe_user_turns.py fix(gateway): dedupe user turns on transient failure (#47237) 2026-06-26 00:11:17 +05:30
test_delivery.py fix(delivery): drop env-var knob, flag all chunking adapters 2026-06-22 05:41:22 -07:00
test_delivery_silence_filter.py fix(gateway): drop outbound silence-narration messages pre-send 2026-05-29 19:06:05 -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 refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_discord_allowed_channels.py
test_discord_allowed_mentions.py refactor(gateway): migrate Discord adapter to bundled plugin (full Teams parity) 2026-05-22 14:21:41 -07:00
test_discord_attachment_download.py refactor(gateway): migrate Discord adapter to bundled plugin (full Teams parity) 2026-05-22 14:21:41 -07:00
test_discord_bot_auth_bypass.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_discord_bot_filter.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_discord_channel_controls.py refactor(gateway): migrate Discord adapter to bundled plugin (full Teams parity) 2026-05-22 14:21:41 -07:00
test_discord_channel_prompts.py refactor(gateway): migrate Discord adapter to bundled plugin (full Teams parity) 2026-05-22 14:21:41 -07:00
test_discord_channel_skills.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_discord_clarify_buttons.py fix(discord): unwrap dict choices + soft-boundary truncate clarify buttons 2026-06-19 06:31:08 -07:00
test_discord_component_auth.py fix(discord): check pairing store for component button auth 2026-06-23 23:55:18 -07:00
test_discord_connect.py fix(discord): honor "*" wildcard in DISCORD_ALLOWED_USERS (#22334) 2026-06-27 19:11:30 -07:00
test_discord_document_handling.py fix(gateway): accept any inbound file type across all messaging platforms 2026-06-21 22:43:45 -07:00
test_discord_double_dispatch.py fix(gateway): prevent double dispatch of Discord messages via thread-starter dedup 2026-06-24 03:25:33 +05:30
test_discord_format.py fix(discord): auto-convert markdown tables to bullet groups 2026-06-27 03:57:24 +05:30
test_discord_free_response.py fix(discord): hydrate channel context when replying to a message (#49212) 2026-06-19 12:03:08 -07:00
test_discord_imports.py refactor(gateway): migrate Discord adapter to bundled plugin (full Teams parity) 2026-05-22 14:21:41 -07:00
test_discord_lazy_install_views.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_discord_media_metadata.py refactor(gateway): migrate Discord adapter to bundled plugin (full Teams parity) 2026-05-22 14:21:41 -07:00
test_discord_model_picker.py fix(model): require confirmation for expensive model selections 2026-06-10 00:24:06 -07:00
test_discord_opus.py fix(discord): recover Windows voice opus decoding 2026-05-27 03:35:33 -07:00
test_discord_race_polish.py refactor(gateway): migrate Discord adapter to bundled plugin (full Teams parity) 2026-05-22 14:21:41 -07:00
test_discord_reactions.py refactor(gateway): migrate Discord adapter to bundled plugin (full Teams parity) 2026-05-22 14:21:41 -07:00
test_discord_reply_mode.py refactor(gateway): migrate Discord adapter to bundled plugin (full Teams parity) 2026-05-22 14:21:41 -07:00
test_discord_roles_dm_scope.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_discord_send.py refactor(gateway): migrate Discord adapter to bundled plugin (full Teams parity) 2026-05-22 14:21:41 -07:00
test_discord_slash_auth.py refactor(gateway): migrate Discord adapter to bundled plugin (full Teams parity) 2026-05-22 14:21:41 -07:00
test_discord_slash_commands.py test(discord): guard slash-command registration against the 100 cap 2026-06-14 17:02:21 +07:00
test_discord_sync_limit.py test(discord): add regression test for 100-command sync limit 2026-06-22 13:58:33 -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 chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_discord_voice_mixer.py feat(discord): voice-channel mixer — ambient idle bed + verbal acks that overlap TTS (#39659) 2026-06-05 03:10:40 -07:00
test_display_config.py feat(discord): render reasoning as -# subtext via display.reasoning_style (#51168) 2026-06-23 10:44:02 -07:00
test_dm_topics.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_document_cache.py fix(gateway): accept any inbound file type across all messaging platforms 2026-06-21 22:43:45 -07:00
test_document_context_note.py test(gateway): cover document context note for PDF/DOCX vs text 2026-06-11 11:58:19 -07:00
test_duplicate_reply_suppression.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_email.py fix(email): reject spoofed From: header for authorization (GHSA-rxqh-5572-8m77) 2026-06-25 21:11:02 -07:00
test_empty_model_recovery.py fix(gateway): recover model on post-interrupt turn; gate fallback status (#35381) 2026-05-30 07:28:06 -07:00
test_ephemeral_reply.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_external_drain_control.py fix(gateway): stamp drain marker with instantiation epoch so a durable-volume restart clears it (NS-570) 2026-06-26 18:59:41 +05:30
test_extract_local_files.py test: update extract_local_files Windows-path test for new matching behavior 2026-05-30 07:38:03 -07:00
test_fallback_eviction.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_fast_command.py feat(gateway): inject stable human-readable message timestamps 2026-06-16 15:49:59 -07:00
test_feishu.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_feishu_approval_buttons.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_feishu_bot_admission.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -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 refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_feishu_comment_rules.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_feishu_meeting_invite.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_feishu_onboard.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_feishu_sdk_executor.py fix(gateway,feishu): refuse executor resurrection during real shutdown 2026-06-27 04:13:09 -07:00
test_fresh_reset_skill_injection.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_gateway_command_help.py fix: ignore Telegram start pings 2026-05-27 02:41:24 -07:00
test_gateway_command_line_matcher.py fix(gateway): track no-systemd restart runtimes 2026-06-23 23:29:28 -07:00
test_gateway_inactivity_timeout.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_gateway_shutdown.py fix(gateway): auto-start after container restart via planned-stop marker (#42675) (#43236) 2026-06-10 14:01:34 +10:00
test_gateway_silence_tokens.py fix(gateway): suppress exact silence tokens without mutating history 2026-06-14 03:25:08 -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 feat(goals): /goal wait <pid> — park the loop on a background process (#50503) 2026-06-22 06:27:29 -07:00
test_google_chat.py revert: keep Google Chat OAuth secret + active_provider profile-scoped (#39398) 2026-06-04 16:54:40 -07:00
test_handoff_watcher_async_db.py fix(gateway): offload handoff watcher SessionDB polling off the event loop 2026-06-24 18:40:23 +05:30
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 refactor(gateway): migrate Home Assistant adapter to bundled plugin 2026-06-06 11:46:24 -07:00
test_hooks.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_insights_unicode_flags.py
test_internal_event_bypass_pairing.py fix: keep poll read-only for notify_on_complete watcher 2026-06-21 11:11:23 -07:00
test_internal_event_never_interrupts_busy_session.py fix(gateway): never interrupt a busy session with an internal completion event (#49738) 2026-06-20 10:57:41 -07:00
test_interrupt_key_match.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_irc_adapter.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_kanban_auto_decompose_live.py fix(kanban): honor kanban.auto_decompose toggle live, without a gateway restart (#50358) 2026-06-21 12:43:44 -07:00
test_kanban_notifier.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_kanban_notifier_watcher_dispatch_gate.py feat(kanban): gate notifier watcher on dispatch_in_gateway 2026-06-01 20:30:24 -07:00
test_kanban_watchers_mixin.py fix(kanban): cross-platform dispatcher lock + explicit release 2026-06-19 07:35:33 -07:00
test_keep_typing_timeout.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_line_plugin.py fix(line): map inbound message types to the correct MessageType 2026-06-04 21:55:20 -07:00
test_load_transcript_db_only.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_loop_exception_handler.py fix(gateway): swallow transient Telegram TimedOut at loop level 2026-05-24 15:03:27 -07:00
test_matrix.py fix(matrix): use member_count as DM signal for named DM rooms 2026-06-23 23:57:38 -07:00
test_matrix_approval_reaction_fail_closed.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_matrix_exec_approval.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_matrix_mention.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_matrix_project_context_isolation.py fix(matrix): use member_count as DM signal for named DM rooms 2026-06-23 23:57:38 -07:00
test_matrix_voice.py test(matrix): make voice-detection tests hermetic against mention gating (#49946) 2026-06-20 21:22:11 -07:00
test_mattermost.py fix(mattermost): harden delivery hygiene 2026-06-16 06:34:54 -07:00
test_max_concurrent_sessions.py feat(sessions): add optional max session cap 2026-06-08 15:12:12 -07:00
test_max_tokens_propagation.py test(gateway): regression tests for max_tokens propagation chain (#20741) 2026-06-05 09:10:26 -07:00
test_mcp_reload_refreshes_cached_agents.py fix(gateway): refresh cached agent tools on /reload-mcp 2026-05-26 14:28:51 -07:00
test_media_download_retry.py fix(gateway): cap inbound media download size to prevent memory exhaustion 2026-06-21 11:56:46 -07:00
test_media_extraction.py fix(gateway): dedup image_generate media across the compression boundary 2026-06-20 23:20:16 -07:00
test_media_metadata_contract.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07: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 chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_message_timestamps.py feat(gateway): gate message timestamps behind opt-in (default off) 2026-06-16 15:49:59 -07:00
test_mirror.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_mixed_attachment_routing.py fix(gateway): classify mixed attachments per-attachment + transcode uncommon image formats 2026-06-27 19:26:04 -07:00
test_moa_one_shot_restore.py refactor(gateway): extract MoA one-shot restore helper; restore #28686 comment; real-method tests 2026-06-27 03:43:28 -07:00
test_model_command_async_offload.py fix(gateway): show MoA presets in model picker 2026-06-27 03:43:38 -07:00
test_model_command_custom_providers.py fix(gateway): offload /model switch off the event loop (#53603) 2026-06-27 04:36:22 -07:00
test_model_command_expensive_confirm.py fix(model-switch): a failed in-place swap must be a no-op, not a dead session (#50375) 2026-06-21 13:33:23 -07:00
test_model_command_flat_string_config.py fix(model): persist /model switch by default across sessions 2026-06-19 07:07:06 -07:00
test_model_picker_persist.py fix(model): clear stale endpoint credentials across switches 2026-06-19 19:58:26 -07:00
test_model_switch_persistence.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_msgraph_webhook.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_multiplex_adapter_registry.py feat(gateway): multiplex phase 3 — secondary-profile adapter registry + conflict detection 2026-06-19 07:34:15 -07:00
test_multiplex_credential_isolation.py feat(gateway): multiplex phase 2 — fail-closed profile credential isolation (Workstream A) 2026-06-19 07:34:15 -07:00
test_multiplex_http_routing.py feat(gateway): multiplex phase 1 — HTTP-inbound /p/<profile>/ routing (webhook) 2026-06-19 07:34:15 -07:00
test_multiplex_lifecycle.py feat(gateway): multiplex phase 4 — lifecycle guard + per-profile observability 2026-06-19 07:34:15 -07:00
test_multiplex_phase0.py feat(gateway): multiplex phase 0 — config flag, profile enumeration, profile-stamped session keys 2026-06-19 07:34:15 -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_notice_rendering.py feat(billing): /credits command — balance + portal top-up handoff (#44776) 2026-06-12 08:51:10 +00:00
test_ntfy_plugin.py test(ntfy): cover echo-tag filter; tag standalone send path 2026-05-29 13:17:46 -07:00
test_pairing.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_pending_drain_no_recursion.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_pending_drain_race.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_pending_event_none.py
test_per_platform_streaming_defaults.py feat(streaming): per-platform streaming defaults (Telegram on, Discord off) + dashboard toggles (#37303) 2026-06-02 05:52:54 -07:00
test_pii_redaction.py
test_planned_stop_watcher.py fix(gateway): only fire planned-stop watcher for self-targeting markers + fix Windows consume (#34749) 2026-05-29 17:36:58 +00:00
test_platform_base.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_platform_connected_checkers.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_platform_http_client_limits.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_platform_reconnect.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_platform_reconnect_fd_leak.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_platform_registry.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -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 fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_pre_gateway_dispatch.py
test_proxy_mode.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_qqbot.py fix(qqbot): stop 100% CPU spin when WebSocket is closed but not None (#31193, #31771) (#40574) 2026-06-06 18:44:44 -07:00
test_queue_consumption.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_raft_adapter.py feat(gateway): add Raft bundled platform plugin with activity hooks 2026-06-19 07:52:37 -07:00
test_reasoning_command.py feat(cli): /reasoning full — show complete thinking, not 10-line clamp (#50499) 2026-06-21 20:21:11 -07:00
test_relay_capability_surface.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_relay_upstream_authz.py fix(relay): authorize relay-delivered events by delivery, not source.platform (#52306) 2026-06-25 14:21:09 +10: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 refactor(gateway): migrate Discord adapter to bundled plugin (full Teams parity) 2026-05-22 14:21:41 -07:00
test_replay_entry_fields.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_reply_to_injection.py fix(signal): preserve quoted reply context 2026-06-20 15:16:53 +05:30
test_response_filters.py fix(gateway): suppress exact silence tokens without mutating history 2026-06-14 03:25:08 -07:00
test_restart_drain.py fix(gateway): hold _run_restart on _restart_task + explicit cancel-loop skip 2026-06-27 03:57:31 -07:00
test_restart_notification.py test(gateway): repoint slash-command mocks after mixin extraction 2026-06-08 01:25:35 -07:00
test_restart_redelivery_dedup.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_restart_resume_pending.py fix(gateway): break the restart loop at the source on session resume 2026-06-19 16:59:58 -07:00
test_restart_service_detection.py fix(gateway): detect launchd in /restart service-manager probe (#43475) 2026-06-24 00:14:25 -07:00
test_resume_command.py fix: harden salvaged session and browser improvements 2026-06-15 07:46:34 -07:00
test_retry_replacement.py refactor(yuanbao): drop dead branch A1 message_id loop + pin missing fixture 2026-05-20 13:00:57 -07:00
test_retry_response.py
test_run_cleanup_progress.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_run_progress_interrupt.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_run_progress_topics.py fix(gateway): relay _thinking bubbles when thinking_progress is on but tool_progress is off (#53849) 2026-06-27 15:48:20 -07:00
test_run_tool_media_re.py test: use raw docstring in test_run_tool_media_re to silence escape warning 2026-05-30 07:38:03 -07:00
test_runner_fatal_adapter.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_runner_startup_failures.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_running_agent_session_toggles.py
test_runtime_config_env_expansion.py fix(config): align prefill messages key handling 2026-06-03 23:51:44 -06:00
test_runtime_env_reload_config_authority.py test(gateway): cover runtime max_turns refresh 2026-06-19 06:31:13 -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_scale_to_zero.py feat(gateway): scale-to-zero idle detection + dormant-quiesce (Phase 0) 2026-06-24 18:47:18 -07:00
test_scale_to_zero_watcher.py fix(gateway): scale-to-zero never armed — arm-gate counted disabled placeholder platforms (#52831) 2026-06-26 14:01:48 +10:00
test_send_error_classification.py feat(gateway): typed send-error classification (SendResult.error_kind) (#50342) 2026-06-21 12:34:22 -07:00
test_send_image_file.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_send_multiple_images.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_send_retry.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_send_voice_reply_notify.py fix(gateway): mark final voice reply as notify-worthy so Telegram delivers it audibly 2026-05-18 22:25:15 -07:00
test_session.py refactor(session): simplify traversal guard to a helper + logger, harden non-leading separators 2026-06-21 15:23:36 -07:00
test_session_api.py feat(gateway): inject stable human-readable message timestamps 2026-06-16 15:49:59 -07:00
test_session_boundary_hooks.py feat(observability): observer-grade telemetry hooks + NeMo-Relay plugin 2026-06-03 06:36:46 -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 chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_session_env.py fix(gateway,feishu): refuse executor resurrection during real shutdown 2026-06-27 04:13:09 -07:00
test_session_hygiene.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_session_info.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_session_list_allowed_sources.py
test_session_load_bool.py fix(gateway): skip non-dict entries in session loading (#46994) 2026-06-25 01:26:13 +05:30
test_session_model_override_routing.py fix(gateway): honor key_env in auth-failure fallback resolution 2026-05-23 02:25:53 -07:00
test_session_model_reset.py
test_session_override_thread_recovery.py fix(gateway): keep /model + /reasoning overrides on topic recovery & compression splits 2026-06-07 22:10:32 -07:00
test_session_race_guard.py fix: ignore Telegram start pings 2026-05-27 02:41:24 -07:00
test_session_reset_notify.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_session_split_brain_11016.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_session_state_cleanup.py fix(gateway): clear zombie agent slot when session_reset races in-flight run 2026-06-04 07:50:45 -07:00
test_session_store_prune.py docs(sessions): clarify sessions.json is the gateway routing index, not the session list (#51726) 2026-06-23 23:56:36 -07:00
test_setup_feishu.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_shared_group_sender_prefix.py
test_shutdown_cache_cleanup.py feat(sessions): add optional max session cap 2026-06-08 15:12:12 -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): FIFO-evict the quote-detection timestamp cache 2026-06-20 21:00:46 +05:30
test_signal_format.py fix(signal): share markdown formatting across send paths 2026-06-20 13:47:14 +05:30
test_signal_rate_limit.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_simplex_plugin.py fix(gateway): classify SimpleX non-image/non-audio files as DOCUMENT 2026-06-12 01:07:50 -07:00
test_slack.py fix(slack): transcribe in-app voice messages (audio/mp4) instead of failing 2026-06-23 14:44:12 +05:30
test_slack_approval_buttons.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_slack_channel_session_scope.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_slack_channel_skills.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_slack_mention.py fix(slack): split csv mention pattern fallback 2026-06-22 09:44:52 -07:00
test_slack_plugin_action_handlers.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_slack_plugin_setup.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_slash_access.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_slash_access_dispatch.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_sms.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_sse_agent_cancel.py test(api-server): cover SSE failure finish_reason for both failure modes 2026-06-27 03:52:44 -07:00
test_ssl_cert_detection.py fix: harden gateway startup and turn persistence 2026-06-07 02:15:23 -07:00
test_ssl_certs.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_startup_no_eager_platform_install.py test(gateway): cover no eager platform install on startup sweep 2026-06-21 16:41:17 -07:00
test_status.py revert(windows): roll back terminal-popup PRs #53791 #53810 #53829 (#53853) 2026-06-27 15:59:00 -07:00
test_status_command.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_steer_command.py
test_step_callback_compat.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_sticker_cache.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_stop_thread_sibling.py fix(gateway): /stop can interrupt a sibling participant's run in a per-user thread (#35959) 2026-05-31 09:29:03 -07:00
test_stream_consumer.py fix(gateway): respect adapter decline of fresh-final to prevent double delivery 2026-06-21 13:55:50 -07:00
test_stream_consumer_draft.py fix(telegram): preserve rich formatting on stream final 2026-06-13 13:44:45 -07:00
test_stream_consumer_fresh_final.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_stream_consumer_thread_routing.py fix(feishu): route blocking SDK calls through an adapter-owned executor 2026-06-27 04:13:09 -07:00
test_stream_events.py feat(gateway): structured stream-event protocol + Telegram draft formatting parity (#37250) 2026-06-02 00:33:50 -07:00
test_stt_config.py fix(gateway): return tuple from voice transcription on placeholder caption (#42090) 2026-06-09 23:16:23 -07:00
test_stuck_loop.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_subagent_protection_30170.py test(gateway): assert queued outcome, not merge_pending_message_event call 2026-06-20 20:05:37 -07:00
test_table_helpers.py refactor: extract shared GFM table→bullet helpers into helpers.py 2026-06-27 03:57:24 +05:30
test_teams.py feat(teams): native send_video/send_voice/send_document attachments (#49308) 2026-06-19 16:20:59 -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 refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_telegram_audio_vs_voice.py fix(gateway): audio attachment note no longer steers the agent into punting 2026-06-11 11:58:19 -07:00
test_telegram_callback_auth_fail_closed.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_telegram_caption_merge.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_telegram_channel_posts.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_telegram_clarify_buttons.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_telegram_closewait_limits_31599.py fix(telegram): wire platform_httpx_limits into general-pool HTTPXRequest (#31599) 2026-06-24 02:15:47 +05:30
test_telegram_conflict.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_telegram_documents.py fix(telegram): surface failed media downloads to user and agent, not a silent empty turn (#53912) 2026-06-27 19:12:57 -07:00
test_telegram_format.py fix(telegram): clip mid-stream overflow instead of splitting (#48648) 2026-06-24 00:00:46 -07:00
test_telegram_forum_commands.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_telegram_group_gating.py test(telegram): make config-bridge tests immune to ambient .env pollution (#53594) 2026-06-27 04:36:45 -07:00
test_telegram_max_doc_bytes.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_telegram_mention_boundaries.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_telegram_model_picker.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_telegram_network.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_telegram_network_reconnect.py fix(telegram): persistent heartbeat loop to detect CLOSE-WAIT polling sockets 2026-06-25 18:50:11 -07:00
test_telegram_noise_filter.py fix(gateway): unify outbound chat redaction onto authoritative redactor (#23810) (#53907) 2026-06-27 19:09:41 -07:00
test_telegram_overflow_partial.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_telegram_photo_interrupts.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_telegram_progress_edit_transient.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_telegram_prune_stale_topic_binding_31501.py fix(telegram): disable DM topic mode when last binding is pruned 2026-06-22 12:29:05 -07:00
test_telegram_reactions.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_telegram_reply_mode.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_telegram_reply_quote.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_telegram_rich_messages.py test(telegram): cover table auto-rich and topic routing 2026-06-25 13:10:54 -07:00
test_telegram_rich_newlines.py fix(telegram): exempt tables from rich newline hard-breaks 2026-06-21 08:26:28 -07:00
test_telegram_send_draft_format.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_telegram_send_path_health.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_telegram_slash_confirm.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_telegram_status_indicator.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_telegram_status_update.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_telegram_text_batch_perf.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_telegram_text_batching.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_telegram_thread_fallback.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_telegram_topic_mode.py fix(gateway): keep Telegram topic bindings aligned with compression children (#34409) 2026-05-28 23:25:52 -07:00
test_telegram_username_chat_id.py fix(telegram): accept @username chat_id in delivery paths (#13206) 2026-06-27 04:01:58 -07:00
test_telegram_voice_v0_regressions.py Guard oversized Telegram video downloads 2026-06-27 04:39:48 -07:00
test_telegram_webhook_secret.py test: retarget source-path refs to migrated plugin paths 2026-06-20 10:26:45 -07:00
test_text_batching.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_title_command.py fix(gateway): rename the Telegram topic from /title, not only auto-titles 2026-06-20 01:54:16 +05:30
test_tool_response_drop_recovery.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_transcript_offset.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_tts_media_routing.py fix(telegram): preserve Bot API update queue on watcher reconnect 2026-06-25 21:29:57 -07:00
test_tui_approval_redaction.py fix(gateway): redact credentials from TUI approval prompts (#48456) 2026-06-23 03:14:18 +05:30
test_unauthorized_dm_behavior.py Make email pairing opt-in 2026-06-21 22:43:57 -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_undo_rewind_session.py feat(gateway): bring /undo [N] to messaging platforms (parity with CLI/TUI) (#36699) 2026-06-01 02:04:14 -07:00
test_unknown_command.py
test_update_command.py fix(tests): mock subprocess.Popen in all _handle_update_command tests 2026-06-12 13:42:42 -04:00
test_update_streaming.py fix(gateway): keep pending /update completion notifications until the target platform reconnects 2026-06-04 06:56:28 -07:00
test_usage_command.py fix: stop reporting cache-hit rate and cost across all UI surfaces (#52717) 2026-06-25 15:21:22 -07:00
test_verbose_command.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_version_command.py Include git SHA in /version output via banner label helper. 2026-06-05 18:05:05 -07:00
test_video_context_note.py fix(slack): make video attachments available to agents (#45512) 2026-06-13 03:33:27 -07: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 fix(discord): honor "*" wildcard in DISCORD_ALLOWED_USERS (#22334) 2026-06-27 19:11:30 -07:00
test_voice_mode_platform_isolation.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_weak_credential_guard.py fix(security): close hermes-0day MCP-persistence attack surface 2026-06-21 19:05:27 -07:00
test_webhook_adapter.py perf(webhook): prune request caches incrementally (#46065) 2026-06-14 02:40:54 -07:00
test_webhook_deliver_only.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_webhook_dynamic_routes.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_webhook_integration.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
test_webhook_signature_rate_limit.py
test_wecom.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_wecom_callback.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_weixin.py fix(weixin): add rate-limit circuit breaker 2026-06-07 22:10:17 -07:00
test_weixin_typing.py fix(weixin): refresh typing ticket on expiry to prevent stuck indicator (#38085) 2026-06-07 21:50:57 -07:00
test_whatsapp_allowlist_lid_resolution.py fix(whatsapp): resolve phone↔LID aliases in adapter DM/group allowlist (#53588) 2026-06-27 04:17:12 -07:00
test_whatsapp_bridge_dir_resolution.py test(whatsapp): cover read-only bridge dir mirror; add author map 2026-06-20 17:05:27 -07:00
test_whatsapp_bridge_pidfile.py test(whatsapp): fix port-spares-client test race (listen before announce + retry connect) 2026-06-21 17:23:33 -07:00
test_whatsapp_cloud.py fix(whatsapp_cloud): resolve reply-to text so the agent sees reply context (#52957) 2026-06-26 01:05:05 -07:00
test_whatsapp_connect.py fix(whatsapp): add missing re import + fix test import path after adapter relocation 2026-06-21 17:23:33 -07:00
test_whatsapp_formatting.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_whatsapp_group_gating.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_whatsapp_reply_prefix.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_whatsapp_stale_bridge.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_whatsapp_text_batching.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_whatsapp_to_jid.py fix(whatsapp): normalize bare phone targets to JIDs before bridge send 2026-06-21 13:32:22 -07:00
test_ws_auth_retry.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_yolo_command.py