hermes-agent/tests/gateway
ethernet 5ed1c972d9 refactor(sidecars): one resolver for the Photon and WhatsApp children
Both sidecars answered the same question in their own way. Which
directory does this Node child run from, when some installs put the
source tree somewhere nothing can write?

gateway/sidecar_runtime.py answers it once. Four rungs:

1. An operator override.
2. A writable source.
3. A read-only source whose baked deps match the lockfile.
4. A read-only source that must move to $HERMES_HOME/sidecars/<name>
   before npm can run.

Node sets the shape of that last rung. Its ESM resolver reads
node_modules only from the directories above the importing file, and
NODE_PATH applies to CommonJS alone. Measured on Node 26: an ESM import
with NODE_PATH pointing at the packages fails, and the same import from
a directory beside them works. Both sidecars are "type": "module", so
the entry file and the packages must share a tree. A copy is the only
arrangement Node accepts.

_MIRROR_FILES is gone. It named the files to copy, so it had to name
every module the entry file imports. It was wrong twice. It listed the
deleted spectrum patch, and it omitted send-format.mjs and
stream-staleness.mjs. Both faults appear only on a read-only install.
The resolver copies the tree instead, without node_modules, and the test
compares the mirror against the source tree rather than against a second
list. A mutation that returns to a fixed list fails it.

The copy uses shutil.copy, not copy2. copy2 gives the mirror file the
mtime of the source, and a Nix store source has mtime = epoch. A
refreshed lockfile then always predates npm's install marker, and
deps_are_current() keeps stale node_modules through every upgrade,
which is the fault this resolver exists to fix. A plain copy stamps
the copy time, so a content change always postdates the previous
install. npm's hidden node_modules/.package-lock.json cannot replace
the content comparison: it is a different document, and npm matches it
semantically, not byte for byte.

WhatsApp gains what it never had: a staleness check and a refresh. Its
resolver returned any existing mirror without comparing it against the
lockfile, so an upgrade kept the old node_modules. This is a behaviour
change.

The mirrors move to $HERMES_HOME/sidecars/. The Baileys credentials live
in $HERMES_HOME/whatsapp/session, so a paired account is not affected.
`hermes doctor` reports the mirrors the old resolvers left at
$HERMES_HOME/photon/sidecar and $HERMES_HOME/scripts/whatsapp-bridge.
Nothing reads them now, and each one can hold a node_modules of some
hundred MB. --fix removes them.

_sidecar_deps_stale and deps_are_current read the same two files with
opposite missing-file answers, on purpose. Each one points at the other
and says why.

The container bakes both sidecars now. It baked Photon and left WhatsApp
to install at run time.
2026-08-09 17:33:14 -04:00
..
platforms fix(yuanbao): pop tracking entries only for truthy matching msg_id + regression tests 2026-08-03 17:33:14 +05:30
relay fix(gateway): rename a Discord thread once, after the reply lands 2026-08-09 04:33:58 -05:00
__init__.py
_plugin_adapter_loader.py
conftest.py test: bind lark SDK globals session-wide, not per-file 2026-08-03 17:24:11 +05:30
feishu_helpers.py
restart_test_helpers.py test(gateway): cover restart after-turn deferral (#77184) 2026-08-03 09:57:58 +05:30
test_7100_transient_failure_transcript.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_10710_auto_reset_evicts_cached_agent.py
test_13121_shutdown_inflight_transcript_flush.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_25107_stale_base_url_api_mode.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_35809_auto_reset_clean_context.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_35994_reset_button_deadlock.py
test_42039_duplicate_user_message.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_48031_model_switch_after_auto_reset.py
test_53175_cleanup_off_loop.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_64674_multiplex_primary_token_scope.py fix(secrets): allowlist API_SERVER listener settings as global deployment env 2026-08-02 09:59:52 -07:00
test_71671_faulthandler_no_stderr.py
test_73297_memory_flush_on_reset.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_73771_media_resend_dedup.py test(gateway): de-flake history-lookup timing tests; add worker-start-failure regression 2026-08-08 13:31:04 +05:30
test_75349_whatsapp_multiplex_secret_scope.py fix(whatsapp): route WHATSAPP_* env reads through secret scope for multiplex profiles 2026-08-02 00:11:50 -07:00
test_abandoned_turn_process_cleanup.py fix(gateway): guard empty task_id reaps and prefer the finished worker's result 2026-08-02 14:23:55 +05:30
test_active_session_text_merge.py fix(gateway): skip topic recovery for non-DM messages 2026-08-02 21:48:46 +05:30
test_active_turn_recovery.py fix(gateway): close ambiguous recovery cleanup gaps 2026-08-08 01:12:16 +05:30
test_adapter_connect_is_reconnect_contract.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_adapter_startup_secret_scope.py fix(secrets): scoped BLUEBUBBLES_PASSWORD + API_SERVER_KEY init read; add parametrized regression tests 2026-08-02 10:00:44 -07:00
test_agent_cache.py feat(gateway): session activity watchdog, stall notify, compress timeout (#72424) 2026-08-02 16:16:36 -07:00
test_agent_cache_pressure.py fix(models): corrupt-at cache rows degrade to live fetch in cached_provider_model_ids 2026-08-07 23:00:28 +05:30
test_agents_command_delegations.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_aiohttp_body_caps.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_allowed_channels_widening.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_allowlist_startup_check.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_api_server.py fix(api-server): resolve reasoning for the request's model, not model.default 2026-08-08 11:13:27 -07:00
test_api_server_active_work_drain.py fix(gateway): re-signal interrupts when work is still live at settle-window exit 2026-08-07 14:11:18 +05:30
test_api_server_bind_guard.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_api_server_jobs.py fix(cron): surface initial scheduler registration failures 2026-08-07 17:45:06 +05:30
test_api_server_media_data_urls.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_api_server_multimodal.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_api_server_multiplex_secret_scope.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_api_server_normalize.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_api_server_runs.py
test_api_server_toolset.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_approval_prompt_redaction.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_approvals_command.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_approve_deny_commands.py test(approval): event-based waits for blocking-approval E2E polls (PR #63522 port) 2026-07-29 18:55:10 -07:00
test_async_delegation_session_binding.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_async_delivery_capability.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_async_session_db.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_async_session_store.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_audio_cache.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_auth_fallback.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_auto_continue.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_auto_voice_reply_format.py fix(gateway): preserve voice_only semantics for text input 2026-07-30 00:11:33 -07:00
test_background_command.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_background_process_notifications.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_base_auto_tts_output_format.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_base_topic_sessions.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_bluebubbles.py
test_bounded_adapter_teardown.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_bundles_command.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_busy_session_ack.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_busy_session_auth_bypass.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_buzz_adapter.py
test_buzz_websocket.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_cached_agent_max_iterations.py feat(gateway): session activity watchdog, stall notify, compress timeout (#72424) 2026-08-02 16:16:36 -07:00
test_cancel_background_drain.py
test_cgroup_cleanup.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_channel_continuity_hint.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_channel_directory.py fix(slack): dedupe thread-qualified channel lookups (#80668) 2026-08-07 18:40:33 +05:30
test_channel_directory_connected_only.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_channel_overrides.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_checkpoint_config.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_choice_picker.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_cjk_fts_config_bridge.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_clarify_active_session_bypass.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_clarify_progress_leak.py
test_clarify_thread_followup_not_swallowed.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_clean_shutdown_marker.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_code_fence_tracking.py
test_command_bypass_active_session.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_complete_path_at_filter.py fix(test): patch _launch_configured_cwd in completion tests for hermeticity (#70041) 2026-07-29 18:55:10 -07:00
test_completion_delivery.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_compress_command.py fix(gateway): keep event loop alive during /compress and Relay drain 2026-08-04 11:17:11 +05:30
test_compress_focus.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_compress_plugin_engine.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_compress_preview.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_compression_concurrent_sessions.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_compression_deferred_soft_result.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_compression_failure_session_sync.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_compression_in_flight_check.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_compression_interrupt_demotion_56391.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_compression_progress_notices.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_compression_session_id_persistence.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_config.py
test_config_cwd_bridge.py fix(terminal): preserve SSH remote home cwd 2026-08-07 18:41:57 -06:00
test_config_driven_access_policy.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_config_env_bridge_authority.py refactor(gateway): drop dead degraded token field; de-churn salvage diff 2026-08-07 18:23:57 +05:30
test_context_ref_expansion_runtime.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_conversation_scope_funnel.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_cron_active_work_drain.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_cron_fire_webhook.py fix(api_server): run the cron-fire token verifier off the event loop 2026-08-02 23:12:22 +05:30
test_cron_shutdown_drain.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_cwd_placeholder.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_dead_targets.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_debug_command.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_dedupe_user_turns.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_delegation_session_id_leak.py fix(delegation): prevent child HERMES_SESSION_ID leak into parent process env 2026-07-31 22:32:55 -07:00
test_delivery.py fix(gateway): write cron delivery output files as UTF-8 2026-08-08 12:29:35 -07:00
test_delivery_ledger.py test: raise blocking-probe timeouts for loaded CI runners 2026-08-03 11:00:49 +05:30
test_delivery_ledger_fd_leak.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_delivery_ledger_producer.py test: raise blocking-probe timeouts for loaded CI runners 2026-08-03 11:00:49 +05:30
test_delivery_silence_filter.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_destructive_slash_always_persist_report.py fix(gateway): do not claim a destructive-slash opt-out that was not saved 2026-07-31 22:35:03 -07:00
test_destructive_slash_confirm.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_diff_command.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_dingtalk.py
test_discord_allowed_channels.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_allowed_mentions.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_approval_mentions.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_attachment_download.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_bot_auth_bypass.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_bot_filter.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_channel_controls.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_channel_prompts.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_channel_skills.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_clarify_buttons.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_component_auth.py
test_discord_connect.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_document_handling.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_double_dispatch.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_edit_message_overflow.py perf(discord): build reply references from ids instead of fetch_message 2026-08-02 21:14:36 +05:30
test_discord_exec_approval_content.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_fail_closed_feedback.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_format.py fix(discord): suppress link embeds in tool preview markdown links 2026-08-02 21:48:06 -07:00
test_discord_free_response.py
test_discord_imports.py
test_discord_lazy_install_views.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_liveness.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_media_metadata.py
test_discord_missed_message_backfill.py
test_discord_model_picker.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_opus.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_pending_text_batch_shutdown.py
test_discord_plugin_setup.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_prompt_content_siblings.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_prompt_timeout_config.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_race_polish.py
test_discord_reactions.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_reply_mode.py perf(discord): build reply references from ids instead of fetch_message 2026-08-02 21:14:36 +05:30
test_discord_roles_dm_scope.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_send.py Discord drops an empty outbound message instead of sending it (#78815) 2026-08-04 18:23:04 +00:00
test_discord_slash_auth.py
test_discord_slash_commands.py
test_discord_sync_limit.py
test_discord_system_messages.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_thread_persistence.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_thread_slash_expired_defer.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_discord_voice_mixer.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_display_config.py
test_dm_topics.py test(gateway): fix order-dependent telegram-mock flake cluster 2026-07-29 21:30:53 -07:00
test_document_cache.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_document_context_note.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_duplicate_reply_suppression.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_email.py
test_email_charset_fallback.py fix(email): never let unknown or malformed charsets abort the IMAP fetch 2026-08-08 12:30:19 -07:00
test_email_robustness.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_email_secret_scope.py fix(email): Slack-pattern helper for unscoped default-profile adapter + scope ports/trust flag 2026-08-02 10:01:16 -07:00
test_empty_model_recovery.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_env_flag_truthy.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_ephemeral_reply.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_escape_reasoning_fences.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_external_drain_control.py
test_extract_local_files.py
test_fallback_chain_reload.py refactor(gateway): extract run_sync onto TurnRunner (completes the TurnContext seam; AST-identical body) 2026-07-29 16:21:46 -07:00
test_fallback_eviction.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_fast_command.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_feishu.py test: bind lark SDK globals session-wide, not per-file 2026-08-03 17:24:11 +05:30
test_feishu_approval_buttons.py
test_feishu_bot_admission.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_feishu_bot_auth_bypass.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_feishu_channel_prompts.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_feishu_comment.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_feishu_comment_rules.py
test_feishu_lazy_import.py fix(feishu): defer the lark_oapi import off the startup path 2026-08-03 17:24:11 +05:30
test_feishu_meeting_invite.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_feishu_onboard.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_feishu_sdk_executor.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_feishu_table_markdown.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_feishu_voice_message_type.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_fence_chunker.py test(gateway): regression tests for UTF-16 chunk limits at the Telegram boundary (#55844) 2026-08-08 12:30:19 -07:00
test_first_turn_session_meta_rebaseline.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_footer_command_mid_run.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_fresh_reset_skill_injection.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_gateway_command_dispatch_minimal.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_gateway_command_help.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_gateway_command_line_matcher.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_gateway_inactivity_timeout.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_gateway_process_exit.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_gateway_shutdown.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_gateway_silence_tokens.py fix: handle replacement transforms after CLI streaming 2026-08-08 14:06:30 +05:30
test_gateway_utf8_encoding.py
test_goal_continuation_drain.py test: wait for ledger-wrapped sends in drain assertions 2026-08-03 11:00:49 +05:30
test_goal_max_turns_config.py
test_goal_status_notice.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_goal_verdict_send.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_google_chat.py
test_google_chat_oauth_dependencies.py refactor(deps): read the lazy-install specs from the pyproject extras 2026-08-09 17:33:14 -04:00
test_handoff_thread_session_key.py fix: Discord-specific guard + cron sibling + non-regression tests 2026-08-03 00:32:17 +05:30
test_handoff_watcher_async_db.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_history_media_current_turn.py fix(gateway): relay TTS attachments + semantic auto-thread rename on the title turn (#74482) 2026-07-29 18:00:18 -07:00
test_home_target_env_var.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_homeassistant.py
test_hooks.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_hygiene_failure_cooldown_ladder.py refactor(gateway): extract the hygiene recovery gate and forward the failure reason 2026-08-06 15:04:53 +05:30
test_image_input_routing_runtime.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_incomplete_gateway_turns.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_insights_unicode_flags.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_interactive_prompt_base.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_internal_event_bypass_pairing.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_internal_event_never_interrupts_busy_session.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_interrupt_key_match.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_irc_adapter.py
test_kanban_auto_decompose_live.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_kanban_notifier.py fix(kanban): deliver notifications from non-dispatch gateways 2026-07-31 21:52:11 -07:00
test_kanban_notifier_apiserver_wake.py fix(kanban): deliver notifications from non-dispatch gateways 2026-07-31 21:52:11 -07:00
test_kanban_notifier_watcher_dispatch_gate.py fix(kanban): deliver notifications from non-dispatch gateways 2026-07-31 21:52:11 -07:00
test_kanban_notifier_zero_sub_gate.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_kanban_reconcile_orphans.py feat(kanban,mcp): orphaned-card reconciliation + per-server MCP identity header 2026-08-07 08:58:20 -07:00
test_kanban_watchers_mixin.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_keep_typing_timeout.py
test_lifecycle_ledger.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_line_plugin.py
test_load_transcript_db_only.py
test_loop_exception_handler.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_loop_liveness_watchdog.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_matrix.py fix(matrix): commit the migrated account only after the session sweep 2026-08-03 10:03:35 +05:30
test_matrix_approval_reaction_fail_closed.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_matrix_dm_invite_recording.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_matrix_exec_approval.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_matrix_mention.py
test_matrix_message_event_metadata.py fix(matrix): propagate sender + reply context to media MessageEvents too 2026-08-07 14:34:55 +05:30
test_matrix_message_length.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_matrix_plugin_setup.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_matrix_project_context_isolation.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_matrix_recovery_key_scope.py fix(matrix): honor profile secret scope for recovery key under multiplex 2026-08-02 00:11:50 -07:00
test_matrix_voice.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mattermost.py test: restore four silently shadowed definitions and guard against more 2026-07-31 22:35:16 -07:00
test_mattermost_plugin_setup.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_max_concurrent_sessions.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_max_tokens_propagation.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_reload_refreshes_cached_agents.py
test_media_cache.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_media_download_retry.py
test_media_extraction.py test(gateway): cover current-turn TTS media dedup 2026-07-29 19:11:05 -07:00
test_media_metadata_contract.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_media_spaced_paths_and_history_dedupe.py fix(gateway): collect quoted/spaced/home-relative MEDIA paths into the history dedup set 2026-07-29 19:11:05 -07:00
test_media_tag_cleanup.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_media_tag_formatting_variants.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_media_tag_separator.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_memory_monitor.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_memory_trim_housekeeping.py feat(mem): config-driven allocator trim with telemetry and lifecycle coverage 2026-08-02 22:44:38 +05:30
test_message_deduplicator.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_message_timestamps.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mirror.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mixed_attachment_routing.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_moa_one_shot_restore.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_model_command_async_offload.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_model_command_context_offload.py fix(gateway): offload preflight-compression warning enrichment; behavioral offload tests 2026-07-31 22:39:34 -07:00
test_model_command_custom_providers.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_model_command_expensive_confirm.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_model_command_flat_string_config.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_model_picker_persist.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_model_switch_persistence.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_msgraph_webhook.py
test_multiplex_adapter_registry.py
test_multiplex_api_server_routing.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_multiplex_background_task_scope.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_multiplex_credential_isolation.py fix(gateway): hydrate cold profile secret sources 2026-08-02 00:11:50 -07:00
test_multiplex_http_routing.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_multiplex_lifecycle.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_multiplex_pairing_stores.py fix(gateway): align multiplex pairing stores 2026-07-29 18:43:50 -05:00
test_multiplex_phase0.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_multiplex_profile_authz.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_native_image_buffer_isolation.py
test_new_clears_last_resolved_model.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_normalize_empty_agent_response.py fix(gateway): honest recovery message for session-persistence failures instead of 'unknown error' 2026-08-08 14:18:26 +05:30
test_notice_delivery.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_notice_rendering.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_notify_fatal_error_shield.py fix: store strong ref to detached fatal handler task to prevent GC 2026-08-09 22:34:28 +05:30
test_ntfy_plugin.py
test_own_policy_startup_gate.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_pairing.py fix(pairing): scope the approve/revoke endpoints to a profile 2026-07-29 18:43:50 -05:00
test_pairing_allowlist_bypass.py fix(gateway): honor empty WhatsApp allow_from over env grants 2026-08-02 11:50:05 +05:30
test_pending_drain_no_recursion.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_pending_drain_race.py
test_pending_event_none.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_pending_queue_spool.py fix(gateway): spool cap-dropped pending transcript messages instead of discarding 2026-08-09 14:08:51 -07:00
test_per_platform_streaming_defaults.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_pii_redaction.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_plaintext_approval_routing.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_planned_stop_watcher.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_platform_base.py fix(gateway): widen container->host media translation to home, cache, and in-process gateways 2026-08-08 10:32:54 -07:00
test_platform_connected_checkers.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_platform_http_client_limits.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_platform_reconnect.py
test_platform_reconnect_fd_leak.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_platform_registry.py refactor: fold simplify-code review findings 2026-08-07 13:28:43 +05:30
test_plugin_platform_interface.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_post_delivery_callback_chaining.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_post_stream_media_delivery.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_pre_gateway_dispatch.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_priority_path_compression_demotion_56391.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_profile_resolution.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_profile_routing.py
test_prompt_tail_freeze.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_proxy_mode.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_qqbot.py
test_qqbot_credential_isolation.py fix(qqbot): scope the authz, startup-validation, and direct-send QQ reads 2026-08-02 10:01:16 -07:00
test_qqbot_scope_paths.py test(qqbot): mark environ-opt-in isolation case xfail pending authz_mixin gate PR 2026-08-02 10:01:16 -07:00
test_queue_command.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_queue_consumption.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_queued_native_image_session_key.py
test_raft_adapter.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_readiness.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_reasoning_command.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_reasoning_config_per_model.py fix(api-server): resolve reasoning for the request's model, not model.default 2026-08-08 11:13:27 -07:00
test_relay_capability_surface.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_relay_upstream_authz.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_reload_skills_command.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_reload_skills_discord_resync.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_replace_child_reap.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_replay_entry_fields.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_reply_to_injection.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_response_filters.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_restart_after_turn.py test(gateway): cover restart after-turn deferral (#77184) 2026-08-03 09:57:58 +05:30
test_restart_drain.py test(gateway): cover restart after-turn deferral (#77184) 2026-08-03 09:57:58 +05:30
test_restart_notification.py
test_restart_redelivery_dedup.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_restart_resume_pending.py
test_restart_service_detection.py fix(test): hermetic env-detection tests — pin container/supervisor/HOME probes (#422) 2026-07-29 18:55:10 -07:00
test_resume_command.py fix(gateway): scope session lists before limiting 2026-07-31 22:36:55 -07:00
test_retry_replacement.py fix(gateway): make retry archive preservation fail-safe 2026-08-07 13:56:18 +05:30
test_retry_response.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_routing_save_fast_path.py perf(gateway): single-row routing UPSERT fast path for metadata-only saves 2026-08-02 22:33:09 +05:30
test_run_cleanup_progress.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_run_progress_interrupt.py
test_run_progress_topics.py test(gateway): freeze queued follow-up media delivery 2026-08-08 19:17:13 -07:00
test_run_tool_media_re.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_runner_fatal_adapter.py test(gateway): cover fatal-handler queue-before-disconnect (#80598) 2026-08-07 18:32:45 +05:30
test_runner_startup_failures.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_running_agent_session_toggles.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_runtime_config_env_expansion.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_runtime_env_reload_config_authority.py test: cover gateway per-turn reload and flip dump terminal-backend pin 2026-08-02 18:21:58 -07:00
test_runtime_footer.py feat(gateway): add opt-in 'latency' runtime footer field 2026-08-03 17:16:57 +05:30
test_safe_adapter_disconnect.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_scale_to_zero.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_scale_to_zero_watcher.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_send_error_classification.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_send_image_file.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_send_multiple_images.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_send_retry.py
test_send_voice_reply_notify.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session.py perf: replace COUNT(*) with LIMIT-based existence checks 2026-08-03 17:31:29 +05:30
test_session_api.py fix(sessions): prevent oversized transcripts from exhausting memory 2026-08-08 13:36:08 +05:30
test_session_boundary_hooks.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_boundary_security_state.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_context_inheritance.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_continuity_82616.py fix(gateway): make session identity durable so chat continuity survives crashes and restarts 2026-08-09 12:37:06 -07:00
test_session_dm_thread_seeding.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_env.py fix(cron): scope cron approval context per session 2026-08-03 00:25:20 +05:30
test_session_hygiene.py refactor(gateway): extract the hygiene recovery gate and forward the failure reason 2026-08-06 15:04:53 +05:30
test_session_id_cache_coherence.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_info.py test(gateway): cover named-custom context pin on session-info banner 2026-08-04 11:00:04 +05:30
test_session_list_allowed_sources.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_load_bool.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_messages_shutdown_preserve.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_model_override_credential_pool.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_model_override_persistence.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_model_override_routing.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_model_reset.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_override_thread_recovery.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_race_guard.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_reset_notify.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_split_brain_11016.py test: wait for ledger-wrapped sends in drain assertions 2026-08-03 11:00:49 +05:30
test_session_stall_watchdog.py fix(gateway): bound the stall-notify adapter.send (re-review #2) 2026-08-02 16:16:36 -07:00
test_session_state_cleanup.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_store_expiry_finalized.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_store_lock_io.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_store_prune.py fix(session): resolve default state DB path at call time 2026-07-29 18:55:10 -07:00
test_session_store_runtime_stale_guard.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_store_stale_prune.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_title_rename_lane.py fix(gateway): rename a Discord thread once, after the reply lands 2026-08-09 04:33:58 -05:00
test_setup_feishu.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_shared_group_sender_prefix.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_shutdown_cache_cleanup.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_shutdown_flush.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_shutdown_forensics.py
test_shutdown_memory_provider_messages.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_shutdown_watchdog.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_sidecar_runtime.py refactor(sidecars): one resolver for the Photon and WhatsApp children 2026-08-09 17:33:14 -04:00
test_signal.py
test_signal_format.py
test_signal_rate_limit.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_simplex_plugin.py fix(simplex): use structured /_send for standalone DM text sends 2026-08-08 13:56:12 +05:30
test_skip_context_files_wiring.py perf(gateway): per-platform skip_context_files to cut agent build latency 2026-08-03 21:22:56 +05:30
test_slack.py fix: trim identity prompt — remove jargon, tighten directive 2026-07-31 17:55:23 +05:30
test_slack_approval_buttons.py
test_slack_block_kit.py
test_slack_block_kit_adapter.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_bot_auth_bypass.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_channel_session_scope.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_channel_skills.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_clarify_buttons.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_cron_continuable_surface.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_dedup_ttl.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_download_ssrf.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_group_dm_scope_warning.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_ignore_other_user_mentions.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_log_noise.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_mention.py
test_slack_mention_humanization.py fix(slack): insert resolved display names literally when humanizing mentions 2026-08-08 05:58:43 -07:00
test_slack_peer_agent_smoke.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_plugin_action_handlers.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_plugin_setup.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_relay_parent_command.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_require_mention_channels.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_runner_ignored_channels.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_send_retry.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_socket_reconnect_heal.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_status_update.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_user_token_warning.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_wake_external_bot_messages.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slash_access.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slash_access_dispatch.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_sms.py
test_sse_agent_cancel.py test: exercise the production _loop_ref path in put_threadsafe tests 2026-08-04 13:07:44 +05:30
test_sse_frame.py refactor(gateway): route session event stream through _sse_frame (ensure_ascii=False) 2026-08-04 13:07:44 +05:30
test_ssl_cert_detection.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_ssl_certs.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_stacked_skill_platform_disabled.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_stale_confirmation_expiry.py refactor: config auto-migration support floor at v12 + deprecated shim retirement 2026-07-29 16:44:31 -07:00
test_stale_finalize_suppression.py fix(gateway): don't claim deleted head chunks as delivered in the empty-fallback recovery 2026-08-06 03:13:32 +05:30
test_stale_platform_lock_retryable.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_stale_self_heal_agent_cache_eviction.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_startup_no_eager_platform_install.py fix(gateway): split check_fn (passive probe) from ensure_deps_fn (active installer) 2026-08-07 13:28:43 +05:30
test_startup_restart_race.py fix(tests): eliminate flaky/broken tests — shadow sys.path inserts, unmocked network in compressor tests, stale-SDK feishu pin guard, quadratic redact regexes 2026-07-29 15:12:28 -07:00
test_status.py test(gateway): cover same-PID differing non-null start_time self-reacquire 2026-08-08 13:50:08 +05:30
test_status_command.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_status_phrases.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_steer_command.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_steer_fifo_overwrite.py fix(gateway): /steer fallback uses _enqueue_fifo to preserve FIFO head (#75164) 2026-07-31 22:35:58 -07:00
test_step_callback_compat.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_sticker_cache.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_stop_thread_sibling.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_stream_consumer.py
test_stream_consumer_draft.py fix(gateway): cover all finalized stream sends 2026-08-08 16:59:42 -07:00
test_stream_consumer_fresh_final.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_stream_consumer_silence.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_stream_consumer_thread_routing.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_stream_events.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_streaming_tts_consumer.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_streaming_tts_gateway_regression.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_stt_config.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_stt_transcript_echo_config.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_stuck_loop.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_subagent_protection_30170.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_systemd_notify.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_systemd_watchdog_lifecycle.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_table_helpers.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_teams.py fix: address self-review findings on the check_fn/ensure_deps_fn split 2026-08-07 13:28:43 +05:30
test_teams_dotenv_isolation.py fix(teams): suppress SDK import-time dotenv instead of clearing environ 2026-08-01 15:34:19 -07:00
test_teams_pipeline_runtime_wiring.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_approval_buttons.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_audio_vs_voice.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_auth_check.py test(telegram): cover allowlist + unauthorized_dm_behavior pair pass-through 2026-08-01 12:38:38 +05:30
test_telegram_bot_auth_bypass.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_callback_auth_fail_closed.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_caption_merge.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_channel_posts.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_clarify_buttons.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_closewait_limits_31599.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_conflict.py fix(telegram+sqlite): resolve polling conflict loop + misleading WAL warning 2026-08-04 14:34:50 +05:30
test_telegram_connect.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_documents.py
test_telegram_error_redaction.py
test_telegram_fallback_pool_release_71593.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_final_delivery.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_format.py
test_telegram_forum_commands.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_group_gating.py
test_telegram_init_deadline.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_long_command_batching.py fix(telegram): batch near-limit command chunks so split /queue pastes don't orphan their continuation 2026-07-29 17:22:52 -07:00
test_telegram_max_doc_bytes.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_media_read_timeout.py fix(telegram): send_image uploads still went out on the short read timeout 2026-07-31 22:36:10 -07:00
test_telegram_mention_boundaries.py fix(telegram): honor UTF-16 entity offsets 2026-08-08 12:30:19 -07:00
test_telegram_model_picker.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_network.py
test_telegram_network_reconnect.py test(gateway): cover fatal-handler queue-before-disconnect (#80598) 2026-08-07 18:32:45 +05:30
test_telegram_noise_filter.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_overflow_partial.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_pending_update_probe.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_photo_interrupts.py
test_telegram_polling_progress.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_progress_edit_transient.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_prune_stale_topic_binding_31501.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_reactions.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_reply_mode.py
test_telegram_reply_quote.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_rich_messages.py fix: update legacy draft test for new supports_draft_streaming gate 2026-08-09 12:53:45 +05:30
test_telegram_rich_newlines.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_send_draft_format.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_send_path_health.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_slash_confirm.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_start_polling_timeout.py test(xai): cover Firecrawl vs native web_search on Responses 2026-08-04 15:44:15 +05:30
test_telegram_status_indicator.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_status_update.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_text_batch_perf.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_text_batching.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_thread_fallback.py
test_telegram_topic_mode.py
test_telegram_typing_backoff.py
test_telegram_username_chat_id.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_voice_caption_markdown.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_voice_duration.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_voice_v0_regressions.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_webhook_secret.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_text_batching.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_title_command.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tool_log_mode.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tool_response_drop_recovery.py fix(gateway): reap only the background processes an abandoned turn created 2026-08-02 14:23:55 +05:30
test_transcript_offset.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_media_routing.py fix(gateway): skip attachment upload for failed first turns in queued delivery 2026-08-08 19:17:13 -07:00
test_tui_approval_redaction.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_turn_context.py
test_turn_lease.py refactor(gateway): drop dead degraded token field; de-churn salvage diff 2026-08-07 18:23:57 +05:30
test_typing_indicator_toggle.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_unauthorized_dm_behavior.py fix(gateway): align multiplex pairing stores 2026-07-29 18:43:50 -05:00
test_unavailable_skill_hint.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_undo_rewind_session.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_unknown_command.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_update_command.py fix(gateway): tolerate invalid UTF-8 update output 2026-08-08 12:30:19 -07:00
test_update_cron_drain.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_update_streaming.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_usage_command.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_verbose_command.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_version_command.py
test_video_context_note.py
test_vision_memory_leak.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_vision_preprocess.py fix(gateway): keep auto vision preprocess concise 2026-08-08 13:28:19 +05:30
test_voice_command.py fix(discord): leave voice channels before cancelling the bot task 2026-08-03 22:47:14 +05:30
test_voice_mode_platform_isolation.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_wake_delivery.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_watchdog_review_76354.py docs(gateway): precise watchdog scope, explicit import-resets-activity contract (review S4) 2026-08-02 16:16:36 -07:00
test_weak_credential_guard.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_webhook_adapter.py
test_webhook_deliver_only.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_webhook_dynamic_routes.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_webhook_integration.py
test_webhook_session_close.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_webhook_signature_rate_limit.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_wecom.py
test_wecom_callback.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_wecom_plugin_setup.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_weixin.py
test_weixin_secret_scope.py fix(weixin): Slack-pattern secret scoping for WEIXIN_* credential reads 2026-08-02 09:59:52 -07:00
test_weixin_typing.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_whatsapp_allowlist_lid_resolution.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_whatsapp_bridge_dir.py refactor(sidecars): one resolver for the Photon and WhatsApp children 2026-08-09 17:33:14 -04:00
test_whatsapp_bridge_pidfile.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_whatsapp_cloud.py
test_whatsapp_cloud_allowed_users.py fix(gateway): honor empty WhatsApp allow_from over env grants 2026-08-02 11:50:05 +05:30
test_whatsapp_connect.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_whatsapp_formatting.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_whatsapp_from_owner.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_whatsapp_group_gating.py
test_whatsapp_identity.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_whatsapp_media_path_profile.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_whatsapp_native_delivery.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_whatsapp_plugin_setup.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_whatsapp_reply_prefix.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_whatsapp_stale_bridge.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_whatsapp_text_batching.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_whatsapp_to_jid.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_ws_auth_retry.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_yolo_command.py
test_yuanbao_forwarded_heartbeat.py fix(yuanbao): await the forwarded-records loading heartbeat 2026-07-31 22:35:20 -07:00
test_yuanbao_media_ssrf.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00