feat(ops): /operations — מוני-תור אחידים, "מה רץ עכשיו", וניהול-תהליכים כמו שירותי-Windows #157
Reference in New Issue
Block a user
Delete Branch "worktree-ops-controls"
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?
למה
דף
/operationsהציג את התורים-שברקע אבל באופן לא-אחיד ולא-שלם:by_statusגולמי (חלק "142 pending", חלק "1 processing") בלי מבנה קבוע.status='pending'(142) = הבקלוג הכולל (כל פסיקה שטרם עובדה), בעוד התור הפעיל ש-process_pending_extractionsשואב הואrequested_at IS NOT NULL(2). שני מושגים שונים שהוצגו בלי הבחנה.מה השתנה
legal-court-fetch-service/xvfb/chat-service/reaper): הפעל-מחדש / עצור / הפעל.metadata/halacha/court-fetch/digest): "הרץ עכשיו" (pm2 restart) + מתג הפעל/כבה תזמון.מנגנון
drain_controls). pm2cron_restartמחיה תהליך שעוצר ב-pm2 stop, לכן ה"כיבוי" האמין הוא דגל שכל drain בודק ב-startup ועושה no-op מיידי כשכבוי. הקונטיינר קורא/כותב ישירות מ-DB (בלי roundtrip למארח).POST /pm2/control(court_fetch_service), מאובטח Bearer (COURT_FETCH_SHARED_SECRETהקיים) + whitelist ל-legal-*בלבד.drain_digestsהועבר מ-crontab של המערכת ל-pm2 (legal-digest-drain.config.cjs) כדי שיופיע ויהיה שליט.drain_halacha_queue.py(שהיה untracked) הובא לבקרת-גרסאות.Invariants
/operations+ גשר-המארח הקיימים, לא דשבורד/שירות חדש.drain_controls= מקור-אמת יחיד לכיבוי-תזמון; ה-drains קוראים אותו, לא מתקנים תסמין בקריאה.{ok,error}, המוטציות מציגות toast.פריסה (שני מסלולים)
git pullבעץ הראשי,pm2 restart legal-court-fetch-service,pm2 start scripts/legal-digest-drain.config.cjs && pm2 save, והסרת שורת ה-crontab של היומונים.אימות
tsc 0 שגיאות; lint נקי בקבצים שנגעתי בהם; py_compile נקי. בדיקות end-to-end (גשר 200/401/403, דגל-DB, snapshot, UI, יומונים) יבוצעו אחרי הפריסה.
🤖 Generated with Claude Code
הדף הציג את התורים באופן לא-אחיד (by_status גולמי), בלי הבחנה בין "ממתין" (בקלוג: status=pending) ל"בתור" (התור הפעיל: requested_at IS NOT NULL), בלי הצגת הפריט שרץ כרגע, ובלי שום שליטה בתהליכים. מה נוסף: 1. כרטיסי-תור אחידים — בתור / ממתין(בקלוג) / בעיבוד / הושלם / נכשל + "רץ עכשיו" (citation/case_number של הפריט בעיבוד) לכל drain (אחזור-פסיקה, מטא-דאטה, הלכות, יומונים). שערי-אנוש (אישור-הלכות, פסיקה-חסרה) נשארים מוני-סטטוס. 2. פאנל ניהול-תהליכים בסגנון "שירותי Windows": - דמון (court-fetch-service/xvfb/chat/reaper): הפעל-מחדש / עצור / הפעל. - cron drain: "הרץ עכשיו" (pm2 restart) + מתג הפעל/כבה תזמון. 3. כל תגי-הסטטוס מתורגמים לעברית. מנגנון: - הפעל/כבה תזמון = דגל ב-DB (טבלה drain_controls). pm2 cron_restart מחיה תהליך שעוצר ב-stop, לכן ה"כיבוי" האמין הוא דגל שכל drain בודק ב-startup (no-op מיידי כשכבוי). הקונטיינר כותב/קורא ישירות מ-DB. - הרץ-עכשיו + restart/stop/start = proxy ל-pm2 דרך endpoint חדש בגשר-המארח (court_fetch_service /pm2/control), מאובטח Bearer + whitelist ל-legal-* בלבד. - יומונים: drain_digests הועבר מ-crontab ל-pm2 (legal-digest-drain.config.cjs) כדי שיופיע ויהיה שליט כמו כל drain. drain_halacha_queue.py הובא לבקרת-גרסאות. Invariants: מקיים G2 (הרחבת /operations + הגשר הקיים, לא מסלול מקביל) ו-G1 (drain_controls = מקור-אמת יחיד לכיבוי, נורמליזציה במקור ולא תיקון-בקריאה). אין בליעת שגיאות שקטה (הגשר מחזיר {ok,error}; המוטציות מציגות toast). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>