mirror of
https://github.com/CopilotKit/CopilotKit.git
synced 2026-09-14 16:26:20 +08:00
bf3f327f8c
A fleet-wide sweep for sync LLM .create() calls running directly inside an async def on the uvicorn event loop found three more wedge sites (same class as the claude-sdk-python fix in this PR): - integrations/ag2/src/agents/beautiful_chat.py - integrations/llamaindex/src/agents/a2ui_dynamic.py - integrations/llamaindex/src/agents/agent.py (missed by the original report) Each extracts the blocking secondary-LLM round-trip into a sync _generate_a2ui helper and offloads it via await asyncio.to_thread(...) from the async generate_a2ui wrapper (lowest blast radius; sync body unchanged). ag2's other agents already use AsyncOpenAI; all other sync .create sites are inside plain def framework tools dispatched off-loop by their frameworks, so they do not wedge. entrypoint.sh alert-scoping left untouched (claude-sdk-python-specific). Adds a dev-only OpenAI-SDK repro harness (slow_openai.py, prod_server_openai.py, run_prod_openai.sh) that drives the REAL production _generate_a2ui via a slow local OpenAI-compatible endpoint, with a tool_dispatch_fired>=1 anti-false-green guard. RED (sync-on-loop) -> GREEN (to_thread) verified for all three sites.