tests/gateway/test_restart_drain.py::test_restart_command_while_busy_requests_drain_without_interrupt tests/gateway/test_restart_drain.py::test_drain_queue_mode_queues_follow_up_without_interrupt tests/gateway/test_restart_drain.py::test_draining_rejects_new_session_messages tests/gateway/test_restart_drain.py::test_load_busy_input_mode_prefers_env_then_config_then_default tests/gateway/test_restart_drain.py::test_load_busy_text_mode_follows_input_mode_and_honors_legacy tests/gateway/test_restart_drain.py::test_load_restart_drain_timeout_prefers_env_then_config_then_default tests/gateway/test_restart_drain.py::test_request_restart_is_idempotent tests/gateway/test_restart_drain.py::test_launch_detached_restart_command_uses_setsid tests/gateway/test_restart_drain.py::test_windows_gateway_venv_imports_add_site_packages tests/gateway/test_restart_drain.py::test_windows_detached_restart_scrubs_gateway_marker tests/gateway/test_restart_drain.py::test_shutdown_notification_sent_to_active_sessions tests/gateway/test_restart_drain.py::test_shutdown_notification_says_restarting_when_restart_requested tests/gateway/test_restart_drain.py::test_shutdown_notification_deduplicates_per_chat tests/gateway/test_restart_drain.py::test_shutdown_notification_skipped_when_no_active_agents tests/gateway/test_restart_drain.py::test_shutdown_notification_ignores_pending_sentinels tests/gateway/test_restart_drain.py::test_shutdown_notification_send_failure_does_not_block tests/gateway/test_restart_drain.py::test_shutdown_notification_suppressed_when_flag_disabled tests/gateway/test_restart_drain.py::test_shutdown_notification_home_channel_suppressed_when_flag_disabled tests/gateway/test_restart_drain.py::test_shutdown_notification_uses_persisted_origin_for_colon_ids