"""Regression for stale message intents swallowing the next AI recording.""" import asyncio import struct from types import SimpleNamespace from unittest.mock import AsyncMock from unittest.mock import Mock import pytest from handlers import audio_packet_parser as parser from handlers import audio_session_handler as audio_handler from handlers import session_cleanup_handler as cleanup from handlers import websocket_message_handler as messages from handlers import websocket_handler as endpoint from services import device_target_cache as targets_module from services.audio_session import AudioSessionManager from services.connection_manager import ConnectionManager from services.device_target_cache import DeviceTargetCache from services.target_audio_cache import TargetAudioCache DEVICE = 'TalkingQ_local_voice' PROCESS_PARENT_MESSAGE = messages.process_parent_leave_message def packet(sid, kind, audio=b''): return DEVICE.encode()+b'\0'+sid.encode()+b'\0'+struct.pack('