fix(sync): company-scope לג'ובים מתוזמנים — הפסקת בליעת-כשל (legal-ai #637) #11
Reference in New Issue
Block a user
Delete Branch "fix/637-scheduled-job-context"
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?
הבאג
sync-case-statusנכשל בכל ריצה עלlegalApiBaseUrl unresolved→TypeError: fetch failed, לפני שהגיע ל-pickSyncTargetIssue. ובכל זאתplugin_job_runs.status = succeeded.סיבת-השורש
מאז
@paperclipai/server2026.722.0 אין scope של חברה ב-runJob—plugin-job-scheduler.js:184שולח בליcompanyId, ולכן כלctx.config.get/ctx.issues.*נדחית ב-InvocationScopeDeniedError(-32005).⚠️ התיקון החשוב מכולם — הפסקת הבליעה
ה-
try/catchב-worker.tsהוסר.runJobHandlerמלוגג וזורק מחדש, כך שהמתזמר רושםstatus:"failed".זה חשוב יותר מהתיקון עצמו: כל עוד הבליעה קיימת, כל תיקון עתידי נראה כמו הצלחה — וזה בדיוק מה שאיפשר ל-13,872 ריצות להיראות ירוקות בזמן ש-98,571 שגיאות הצטברו.
שתי הכרעות-תכנון
err.code === -32005ולא בהתאמת-מחרוזת על ההודעה, שיכולה להישבר בשקט אם המארח ינסח מחדש.LegalApi.requestקורא ל-resolveBaseUrl()בכל בקשה; בלי ה-memo כל קריאת-כלי הייתה מוסיפהctx.state.set(=upsert ל-Postgres) מיותר.ו-
company-scope.tsטהור בכוונה (כמוsync-target.ts) — ניתן לייבוא בטסט בלי להריץrunWorker.בדיקות
פריסה ⚠️
ריפו נפרד ואינו נטען מ-git:
npm run build→ התקנת החבילה ל-/data/paperclip/plugins/node_modules/@marcusgroup/plugin-legal-ai/→pm2 restart paperclip. לאמת שהמותקן התעדכן.Invariants
כלל-הנדסה §6 (לב התיקון) · G2 (הפשטה אחת לכל הג'ובים) · G1 (נרמול במקור).
Closes #637(ב-legal-ai)