Gap claim
The synchronous MCP test harness drives coroutines through asyncio.get_event_loop().run_until_complete(...) without a running loop. This is deprecated on older supported interpreters and raises on Python 3.14, preventing the MCP suite from qualifying the advertised interpreter range.
Expected behavior
Synchronous test boundaries use asyncio.run(...); product async lifecycle behavior remains unchanged.
Verification
- The MCP test module passes on Python 3.14.
- Promoting the legacy event-loop deprecation to an error does not fail.
- No nested product event loops are introduced.
Related implementation
Proposed in #1087 and required by the broader compatibility work in #1097.
Gap claim
The synchronous MCP test harness drives coroutines through
asyncio.get_event_loop().run_until_complete(...)without a running loop. This is deprecated on older supported interpreters and raises on Python 3.14, preventing the MCP suite from qualifying the advertised interpreter range.Expected behavior
Synchronous test boundaries use
asyncio.run(...); product async lifecycle behavior remains unchanged.Verification
Related implementation
Proposed in #1087 and required by the broader compatibility work in #1097.