fix(sync): sync-case-status יכתוב רק על issue-שורש פתוח (legal-ai #446) #8
Reference in New Issue
Block a user
Delete Branch "fix/446-sync-target-root-issue"
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(מסונכרן,*/15 * * * *) בחר issue מקושר-תיק לפיplugin_state.state_key=legal-case-numberללא סינון לפיparentId/סטטוס — וכתבin_progressגם על sub-task שכברdone/cancelled, ואף על issue ב-in_review/blocked(שהם מצבי בעלות-Paperclip/המתנה-לאדם). אובחן על תיק 8125-09-24 / CMPA-140 שחזר שוב ושוב מ-doneל-in_progress.שינוי
src/sync-target.ts(חדש) — מודול טהורpickSyncTargetIssue(): בוחר issue-שורש יחיד (parentId === null) שאינוdone/cancelled/in_review/blocked. אפס/יותר-מאחד מועמדים →target: null+reason(ללא בליעה שקטה).src/worker.ts— הג'וב עובר על ה-issues פעם אחת, מקבץ למפתcase_number → מועמדים, ומשתמש ב-pickSyncTargetIssue.statusMap/statusLabelsיצאו ל-scope-מודול (תוכן זהה).src/sync-target.test.ts(חדש) — 8 טסטיםnode:test, כולל רגרסיית 8125-09-24/CMPA-140.tsconfig.json—excludeלקובצי-טסט (לא נכנסים ל-build).אימות
מבחן-מוטציה: הרצת אותם 8 טסטים מול הכלל הישן (ללא סינון) → 6/8 נכשלים, מוכיח שהטסט נושך את הבאג המקורי.
רקע מלא + הכרעת-פאנל (X15/G12/G2): legal-ai issue #446.
Closes ezer-mishpati/legal-ai#446