forked from Rockachopa/Timmy-time-dashboard
Three fixes from real-world testing: 1. Event loop: replaced asyncio.run() with a persistent loop so Agno's MCP sessions survive across conversation turns. No more 'Event loop is closed' errors on turn 2+. 2. Markdown stripping: voice preamble tells Timmy to respond in natural spoken language, plus _strip_markdown() as a safety net removes **bold**, *italic*, bullets, headers, code fences, etc. TTS no longer reads 'asterisk asterisk'. 3. MCP noise: _suppress_mcp_noise() quiets mcp/agno/httpx loggers during voice mode so the terminal shows clean transcript only. 32 tests (12 new for markdown stripping + persistent loop).