This commit is contained in:
root
2026-05-26 07:05:54 +00:00
parent 619bac34cb
commit 8fa8f9fb27
9 changed files with 117 additions and 28 deletions

View File

@@ -46,10 +46,18 @@ async def _run_claude(guide_id: str, prompt: str, timeout: int) -> tuple[int, st
)
_active_processes[guide_id] = process
try:
stdout, stderr = await asyncio.wait_for(
process.communicate(input=prompt.encode("utf-8")),
timeout=timeout,
)
try:
stdout, stderr = await asyncio.wait_for(
process.communicate(input=prompt.encode("utf-8")),
timeout=timeout,
)
except asyncio.TimeoutError:
process.kill()
try:
await asyncio.wait_for(process.wait(), timeout=5)
except asyncio.TimeoutError:
pass
raise
return process.returncode, stdout.decode("utf-8", errors="replace"), stderr.decode("utf-8", errors="replace")
finally:
_active_processes.pop(guide_id, None)