"""Windows-compatible startup script. psycopg async requires SelectorEventLoop, not the default ProactorEventLoop on Windows. This script sets the correct event loop policy before starting uvicorn. """ import asyncio import sys if sys.platform == "win32": asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) import uvicorn if __name__ == "__main__": uvicorn.run( "release_agent.main:app", host="0.0.0.0", port=8080, reload=False, loop="none", # don't let uvicorn override the event loop )