Explorer
/tmp/repair_report.py
← Zurück ↓ Download
import json, sqlite3
from pathlib import Path
base=Path('/opt/struktur/obsidian-graphiti-import'); block=base/'import_run_block.json'
payload={'blocked':True,'reason':'source_failure','queue_id':'11','run_id':'run-2026-08-18T12:32:30.273127+00:00','blocked_at':'2026-08-18T12:39:15.711856+00:00','failure':'HTTP 500; graphiti_processing; graphiti_worker_failed: Expecting property name enclosed in double quotes: line 2 column 1 (char 2)','completed_queue_ids':['3']}
tmp=Path(str(block)+'.tmp'); tmp.write_text(json.dumps(payload,ensure_ascii=False,indent=2)+'\n'); tmp.replace(block)
db=sqlite3.connect('file:/opt/struktur/obsidian-graphiti-import/obsidian_graphiti_import.db?mode=ro',uri=True); counts=dict(db.execute('select status,count(*) from files group by status').fetchall()); db.close(); req=sqlite3.connect('file:/opt/struktur/graphiti/request-data/requests.db?mode=ro',uri=True).execute('select count(*) from graphiti_requests').fetchone()[0]
report=Path('/opt/struktur/knowledge-pipeline-aggregator-staging/AA-RETRY-RECOVERY-FINAL.md')
text=report.read_text()
text=text.replace('Queue `UNHANDLED`: SystemExit(1)','Queue `11`: HTTP 500; `graphiti_processing`; `graphiti_worker_failed: Expecting property name enclosed in double quotes: line 2 column 1 (char 2)')
text=text.replace('"reason": "unhandled_fail_stop"','"reason": "source_failure"').replace('"blocked_at": "2026-08-18T12:39:15.711856+00:00"','"blocked_at": "2026-08-18T12:39:15.711856+00:00",\n  "queue_id": "11",\n  "run_id": "run-2026-08-18T12:32:30.273127+00:00",\n  "failure": "HTTP 500; graphiti_processing; graphiti_worker_failed: Expecting property name enclosed in double quotes: line 2 column 1 (char 2)",\n  "completed_queue_ids": ["3"]')
text=text.replace('Endbestand nicht lesbar: no such table: graphiti_requests',f'Endbestand live verifiziert: `done={counts.get("done",0)}`, `duplicate={counts.get("duplicate",0)}`, `failed={counts.get("failed",0)}`, `retry={counts.get("retry",0)}`, `processing={counts.get("processing",0)}`, Requests=`{req}`, active_request_count=0.')
text += '\n## Nachweis des Abbruchs\n\nQueue 3 war die einzige erfolgreich abgeschlossene Quelle (`done`). Queue 11 war die zweite und letzte gestartete Retry-Quelle und scheiterte mit HTTP 500 im Graphiti-Worker; es wurde keine Queue 12 oder andere weitere Quelle gestartet. Die ursprünglichen 123 failed-Quellen wurden nicht als Auswahlmenge verwendet.\n'
report.write_text(text)
print(counts,req)