Chaim
e7d8b24d7c
feat(pipeline): durable execution for final_halacha via LangGraph (P0, X16/INV-DUR1, #114)
scripts/_pipeline_runtime.py — runtime עמידות משותף: עוטף רשימת-צעדים async ב-LangGraph
StateGraph ליניארי עם AsyncSqliteSaver (checkpoint לכל צעד). קריסה/OOM ממשיכה מהצעד
שנכשל במקום להריץ הכל מחדש. degradation חיננית: ללא langgraph → ריצה ליניארית כמו קודם
(הכפתור לא נשבר). מימוש אחד לשני הפייפליינים (G2).
final_halacha_pipeline.py — 4 הצעדים ([0]extract [1]citations [2]corroboration [3]panel)
רצים דרך ה-runtime. CLI זהה + --fresh (ברירת-מחדל auto-resume). thread יציב לכל תיק;
dry-run = preview נפרד (תמיד fresh). קריסה בפאנל [3] → resume מ-[3] (steps 0-2 שמורים).
pyproject: extra "durable" (langgraph + langgraph-checkpoint-sqlite) — host-only,
optional. data/checkpoints/ ב-.gitignore.
גבול (X16 §1): LangGraph רק כמנוע-פנימי של הסקריפט — לא orchestrator (לא מסלול מקביל
ל-Paperclip; G2/G12). #108 (atomic extract) קדם לזה כתנאי.
אימות: test_pipeline_runtime.py — עם langgraph (venv-זמני): 3 passed (resume מדלג צעדים
שהושלמו · fresh מריץ-מחדש · linear). בלי langgraph (venv משותף): 1 passed + 2 skipped
(degradation). final_halacha מתקמפל ומיובא נקי בשני המצבים. הרצה end-to-end על הפייפליין
החי (DB+LLM) — לאחר `pip install -e ".[durable]"` בעץ הראשי.
Invariants: INV-DUR1 (עמידות), G2 (runtime יחיד), G3 (idempotency מחוזק).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 09:52:35 +00:00
..
2026-05-10 05:58:52 +00:00
2026-06-10 09:52:35 +00:00
2026-05-31 18:42:13 +00:00
2026-05-26 11:26:52 +00:00
2026-05-27 10:06:22 +00:00
2026-04-14 15:28:16 +00:00
2026-05-03 20:04:33 +00:00
2026-05-26 08:34:40 +00:00
2026-06-08 06:53:31 +00:00
2026-05-26 11:26:52 +00:00
2026-06-06 19:45:43 +00:00
2026-06-06 18:10:01 +00:00
2026-04-03 10:21:47 +00:00
2026-04-09 16:45:49 +00:00
2026-06-06 19:55:45 +00:00
2026-05-26 11:26:52 +00:00
2026-04-16 18:49:10 +00:00
2026-06-08 11:59:21 +00:00
2026-04-16 18:49:30 +00:00
2026-06-08 08:57:23 +00:00
2026-06-08 08:57:23 +00:00
2026-06-08 08:57:23 +00:00
2026-06-08 08:57:23 +00:00
2026-05-31 14:58:13 +00:00
2026-05-31 14:58:13 +00:00
2026-06-10 09:52:35 +00:00
2026-06-08 10:21:39 +00:00
2026-05-04 17:47:05 +00:00
2026-05-31 08:57:42 +00:00
2026-05-31 14:12:45 +00:00
2026-06-07 18:18:41 +00:00
2026-06-07 20:12:58 +00:00
2026-06-06 21:29:46 +00:00
2026-06-06 19:55:45 +00:00
2026-06-08 10:21:39 +00:00
2026-06-08 05:01:03 +00:00
2026-06-07 21:11:30 +00:00
2026-06-07 18:18:41 +00:00
2026-06-08 08:07:45 +00:00
2026-06-07 20:33:18 +00:00
2026-06-07 21:04:44 +00:00
2026-06-07 20:31:53 +00:00
2026-06-07 21:04:44 +00:00
2026-06-08 08:57:23 +00:00
2026-06-08 06:04:53 +00:00
2026-06-08 05:13:49 +00:00
2026-06-07 19:43:53 +00:00
2026-06-06 15:34:49 +00:00
2026-05-26 11:26:52 +00:00
2026-05-03 19:24:52 +00:00
2026-06-06 19:45:43 +00:00
2026-04-14 15:55:55 +00:00
2026-05-04 17:25:45 +00:00
2026-05-26 09:34:23 +00:00
2026-06-07 19:43:53 +00:00
2026-06-03 07:55:42 +00:00
2026-05-03 16:43:48 +00:00
2026-04-03 10:21:47 +00:00
2026-04-16 18:49:30 +00:00
2026-06-10 09:52:35 +00:00
2026-06-06 13:28:15 +00:00
2026-06-08 10:57:57 +00:00
2026-05-31 11:14:44 +00:00
2026-05-04 17:25:45 +00:00
2026-05-30 11:26:19 +00:00
2026-05-26 09:17:33 +00:00
2026-05-03 18:43:41 +00:00
2026-05-03 18:43:41 +00:00
2026-05-03 18:43:41 +00:00
2026-05-03 18:43:41 +00:00
2026-05-03 18:43:41 +00:00