feat(halacha): drain לילי (23:00–05:00) + per-upload חילוץ תיק-בודד דרך ה-CEO (#120) #186
Reference in New Issue
Block a user
Delete Branch "worktree-halacha-nightly-drain"
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?
הבעיה (אבחנה 2026-06-11)
לחיצת "חלץ הלכות" על תיק בודד יצרה issue (CMP-165) שהורה ל-CEO להריץ
precedent_process_pending(halacha)— בולען סינכרוני שמרוקן את כל התור ההיסטורי (147 ממתינים, שעות) בתוך heartbeat שחסום לשעה (effectiveTimeoutSec=3600). תוצאה: timed_out כל שעה → process_lost בפירוק קבוצת-התהליכים → retry → סטורם רעש, והתיק הבודד (FIFO אחרון) לא טופל. לא OOM, לא קוד שבור — אי-התאמה ארכיטקטונית.התיקון — הפרדת אחריות
per-upload (מיידי, תיק-בודד דרך ה-CEO):
web/paperclip_client.py(wake_for_precedent_extraction): גוף ה-issue + תיאור-הפרויקט מורים כעתprecedent_extract_metadata+precedent_extract_halachotל-case_law_idשל ה-issue בלבד, עם אזהרה מפורשת לא להריץprocess_pending..claude/agents/legal-ceo.md: אותו שינוי בהוראות ה-CEO.reextract_halachotכבר מנקהrequested_atומסמןcompleted→ התיק לא יחזור לתור הלילי.backlog (לילי, מגודר):
scripts/drain_halacha_queue.py: שער חלון 23:00–05:00 שעון-ישראל (zoneinfo, DST-safe — המכונה UTC). מחוץ לחלון===SKIP===; נעצר===STOP===כשהחלון נסגר, השאר ממשיך בלילה הבא (FIFO + per-chunk checkpoint → אין אובדן/כפילות). env:HALACHA_DRAIN_WINDOW_START/_END/_TZ.scripts/legal-halacha-drain.config.cjs: cron UTC0 20,21,22,23,0,1,2,3= superset שמכסה את חלון-ישראל בקיץ ובחורף; הסקריפט גוזם לחלון המדויק. ירייה שעתית מחדשת one-shot שמת (advisory-lock → חפיפה בטוחה).הבטחת ה-"לא ידליק שוב את כל התור"
ביקורת מלאה של נתיבי-ההפעלה: הבולען היה מופעל מ-(א) גוף issue CMP-165, (ב) הוראות ה-CEO. שניהם שונו לחילוץ תיק-בודד.
request_halacha_extractionממשיך לסמןrequested_atכרשת-ביטחון בלבד (אם wakeup נכשל → הדריינר הלילי יתפוס, בלילה, חסום). שום נתיב יומי לא מרוקן את כל התור.Invariants
paperclip_client= shell;scripts/leak_guard.pyעובר.בדיקות
py_compile✓ · window-logic + zoneinfo ✓ (17:00 IDT →_in_window()=False) ·leak_guard.py✓.צעדים תפעוליים אחרי מיזוג (לא בקוד)
web/).scripts/sync_agents_across_companies.py --apply(פרומפט ה-CEO לשתי החברות).pm2 start scripts/legal-halacha-drain.config.cjs && pm2 save+ ניקוי דגלdrain_controlsב-/operations (כדי שלא יישאר disabled).TaskMaster: legal-ai #120
🤖 Generated with Claude Code