This commit is contained in:
root
2026-05-31 07:18:17 +00:00
parent 7507bed55c
commit d1871234bb

View File

@@ -199,7 +199,7 @@ async def generate_guide(guide_id: str, topic: str, format_name: str, instructio
if guide_id in _cancelled: if guide_id in _cancelled:
return return
if returncode != 0: if returncode != 0:
await _fail(guide_id, f"Generator-Fehler: {stderr[:1000]}") await _fail(guide_id, _claude_error("Generator-Fehler", returncode, stdout, stderr))
return return
if not html_path.exists(): if not html_path.exists():
@@ -217,7 +217,7 @@ async def generate_guide(guide_id: str, topic: str, format_name: str, instructio
returncode, review_out, review_err = await _run_claude(guide_id, content_prompt, AGENT_TIMEOUT, model=MODEL_GUIDE) returncode, review_out, review_err = await _run_claude(guide_id, content_prompt, AGENT_TIMEOUT, model=MODEL_GUIDE)
if returncode != 0: if returncode != 0:
await _fail(guide_id, f"Inhalts-Review-Fehler: {review_err[:1000]}") await _fail(guide_id, _claude_error("Inhalts-Review-Fehler", returncode, review_out, review_err))
return return
review_text = review_out.strip() review_text = review_out.strip()
@@ -230,10 +230,10 @@ async def generate_guide(guide_id: str, topic: str, format_name: str, instructio
current_step = "Inhalts-Korrektur" current_step = "Inhalts-Korrektur"
current_timeout = AGENT_TIMEOUT current_timeout = AGENT_TIMEOUT
fix_prompt = _build_fix_prompt(topic, format_name, html_path, feedback) fix_prompt = _build_fix_prompt(topic, format_name, html_path, feedback)
returncode, _, fix_err = await _run_claude(guide_id, fix_prompt, AGENT_TIMEOUT, model=MODEL_GUIDE) returncode, fix_out, fix_err = await _run_claude(guide_id, fix_prompt, AGENT_TIMEOUT, model=MODEL_GUIDE)
if returncode != 0: if returncode != 0:
await _fail(guide_id, f"Fix-Fehler: {fix_err[:1000]}") await _fail(guide_id, _claude_error("Fix-Fehler", returncode, fix_out, fix_err))
return return
# Step 3: PDF rendern # Step 3: PDF rendern
@@ -287,7 +287,7 @@ async def rework_guide(guide_id: str, topic: str, format_name: str, instructions
if guide_id in _cancelled: if guide_id in _cancelled:
return return
if returncode != 0: if returncode != 0:
await _fail(guide_id, f"Rework-Fehler: {stderr[:1000]}") await _fail(guide_id, _claude_error("Rework-Fehler", returncode, stdout, stderr))
return return
if not tmp_html.exists(): if not tmp_html.exists():
@@ -320,6 +320,16 @@ async def rework_guide(guide_id: str, topic: str, format_name: str, instructions
tmp_pdf.unlink(missing_ok=True) tmp_pdf.unlink(missing_ok=True)
def _claude_error(label: str, returncode: int, stdout: str, stderr: str) -> str:
stderr = (stderr or "").strip()
if stderr:
return f"{label}: {stderr[:1000]}"
tail = (stdout or "").strip()[-500:]
if tail:
return f"{label} (exit {returncode}, stderr leer): …{tail}"
return f"{label} (exit {returncode}, ohne Ausgabe)"
async def _fail(guide_id: str, msg: str) -> None: async def _fail(guide_id: str, msg: str) -> None:
now = datetime.now(timezone.utc).isoformat() now = datetime.now(timezone.utc).isoformat()
await update_guide(guide_id, status="error", progress=None, error_msg=msg, updated_at=now) await update_guide(guide_id, status="error", progress=None, error_msg=msg, updated_at=now)