P2 (אופציונלי) — resume תוך-פאנל: פירוק הפאנל ל-map per-item #434
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What & Why
גרעיניות עדינה: פירוק node-הפאנל ל-map מעל ההלכות/הלקחים הממתינים (LangGraph Send), כל פריט = יחידת-checkpoint. קריסה באמצע-פאנל → המשך מפריט N+1 בלי לשפוט מחדש 1..N ברמת-LLM (חיסכון אמיתי בקריאות+דקות). נשען על ה-CSV הקיים כמקור "כבר-נשפט".
הקשר ופירוט
ספ: X16 §3.3 (עדין) + §4 (P2). רלוונטי כשהפאנל ארוך מאוד (תור-pending מלא). לאמת אינטראקציה עם ה-CSV הקיים (reversible, chair-gated) — לא לשבור את שער-היו"ר (INV-G10). אופציונלי — להריץ רק אם P0/P1 מראים שהרצה-חוזרת של הפאנל השלם עדיין יקרה מדי. worktree + PR.
<info added on 2026-06-10T10:00:05.091Z>
אני צריך לבדוק את מבנה הקוד הרלוונטי כדי לוודא שההכרעה מבוססת על ניתוח נכון של המצב הקיים.עכשיו יש לי תמונה ברורה. בהתבסס על הניתוח:
הכרעה 2026-06-10 (אחרי P0/P1 #114/#115 מוזגו): DEFERRED — לא מומש.
ניתוח טכני מאומת: (1) langgraph/durable-runtime טרם מותקנים בקוד הייצור — אין
_pipeline_runtime.py, איןSqliteSaver, אין ייבוא langgraph ב-mcp-server/אוscripts/. משימה #114 (P0) סומנה done אך התשתית טרם נקלטה לעץ-הראשי. (2)halacha_panel_approve.py(שורות 170-310): מביא את כל ה-pending (שורה 170), שופט בלולאת fan-out (שורות 196-211), ומחיל UPDATE רק בסוף (שורות 288+). resume "חינם" בין-ריצות קיים (DB review_status מדלג על מה שכבר אושר/נדחה), אבל קריסה תוך-כדי הלולאה מאבדת את כל השיפוט שטרם הוחל. (3) P2 היה מגן על התרחיש הזה ע"י checkpoint per-item.מיטיגציה פשוטה יותר (לשקול לפני P2): להזיז את ה-UPDATE לתוך הלולאה (apply incremental, שורות 288-310 → לתוך שורות 196-211) — אז ה-DB-status-resume מכסה גם קריסה תוך-פאנל, בלי צורך ב-LangGraph Send/map. שינוי קטן יותר שמשמר את מודל ה-CSV-backup.
תנאי-הפעלה-מחדש: (א) אחרי התקנת durable-runtime בייצור (#114 אמיתי), (ב) אם נצפות קריסות mid-panel על תורים גדולים שגורמות לשיפוט-חוזר יקר. עד אז: אין הצדקה — מונע מורכבות ספקולטיבית (G2). אם תנאי (ב) מתקיים — לשקול קודם את המיטיגציה הפשוטה (incremental apply), ורק אם לא מספיקה → P2 המלא.
</info added on 2026-06-10T10:00:05.091Z>
Acceptance Criteria
kill באמצע-פאנל (אחרי 50% מהפריטים) → resume → אימות שרק הפריטים שנותרו נשפטים (ספירת קריאות-LLM), והתוצאה זהה לריצה רציפה.
תלויות
תלוי ב-TaskMaster #115 — כולן הושלמו לפני המיגרציה (לא נפתח עבורן issue).
הועבר מ-TaskMaster (tag
legal-ai, id 116, status היהdeferred) ב-2026-08-05. הפניות(#116)בהודעות-commit ישנות מתייחסות למזהה ה-TaskMaster, לא למספר ה-issue הזה.