You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
עלה בעבודה על PR #3502 (כבר נמצא בסקירה על התוכנית). מחוץ לתחום שלו, ולכן לא תוקן שם.
הבעיה במשפט אחד
_create_indexes בונה את שני האינדקסים של push_events, כולל ה-TTL שמנקה את התור, ומתעלם מהתוצאה של safe_create_index. safe_create_index לעולם אינו זורק: כשל חוזר כ-False (דפוס K11). כלומר אם ה-TTL לא נבנה, אף אחד לא יידע.
מה נבדק (main, 928addc)
database/manager.py#L2400-L2427: שתי הקריאות ל-safe_create_index על push_events (push_events_pending_idx, ו-push_events_ttl עם expire_after_seconds=7 * 24 * 60 * 60). התוצאה של שתיהן לא נבדקת. ההערה מעל ה-TTL עצמה אומרת: "בלי זה האוסף גדל בלי גבול."
בכשל, safe_create_index רושם רק אירוע כללי db_create_index_error ברמת warn. אין אירוע ברמת error שאומר שהתור לא יתנקה.
היום כנראה כלום, כי האינדקס קיים. הבעיה היא ביום שהבנייה תיכשל (התנגשות עם אינדקס קיים על created_at שה-enforce לא מצליח ליישר, הרשאות, מסד חדש): התור יגדל בלי גבול, והסימן היחיד יהיה שורת warn כללית בעלייה.
כדי שה-TTL הבא לא יחזור על זה: טסט מבני (AST) על database/manager.py, שבודק שכל קריאה ל-safe_create_index עם expire_after_seconds= אינה משפט-ביטוי שהערך שלו נזרק.
טסט שנופל היום: safe_create_index שמחזיר False ל-push_events_ttl ← אירוע ברמת error.
עלה בעבודה על PR #3502 (כבר נמצא בסקירה על התוכנית). מחוץ לתחום שלו, ולכן לא תוקן שם.
הבעיה במשפט אחד
_create_indexesבונה את שני האינדקסים שלpush_events, כולל ה-TTL שמנקה את התור, ומתעלם מהתוצאה שלsafe_create_index.safe_create_indexלעולם אינו זורק: כשל חוזר כ-False(דפוס K11). כלומר אם ה-TTL לא נבנה, אף אחד לא יידע.מה נבדק (main,
928addc)database/manager.py#L2400-L2427: שתי הקריאות ל-safe_create_indexעלpush_events(push_events_pending_idx, ו-push_events_ttlעםexpire_after_seconds=7 * 24 * 60 * 60). התוצאה של שתיהן לא נבדקת. ההערה מעל ה-TTL עצמה אומרת: "בלי זה האוסף גדל בלי גבול."safe_create_indexרושם רק אירוע כלליdb_create_index_errorברמתwarn. אין אירוע ברמת error שאומר שהתור לא יתנקה._create_recycle_bin_ttl_indexesבודק את התוצאה ומדווחdb_recycle_bin_ttl_index_missingברמת error. גם feat(mcp): העלאת תוכן ארוך בלי לעבור דרך המודל — PUT /api/agent/upload ו-upload_id #3502 עושה את זה ל-mcp_uploads(db_mcp_uploads_index_missing).מה זה עושה בפועל
היום כנראה כלום, כי האינדקס קיים. הבעיה היא ביום שהבנייה תיכשל (התנגשות עם אינדקס קיים על
created_atשה-enforceלא מצליח ליישר, הרשאות, מסד חדש): התור יגדל בלי גבול, והסימן היחיד יהיה שורת warn כללית בעלייה.כיוון לתיקון (לא החלטה — לדיון)
push_events, עםrequiredלאינדקס ה-TTL, כמוfile_deletion.pyו-mcp_uploads.py(feat(mcp): העלאת תוכן ארוך בלי לעבור דרך המודל — PUT /api/agent/upload ו-upload_id #3502).db_push_events_ttl_index_missingאו דומה), עם שורה ב-docs/observability/events_catalog.rst./admin/verify-indexes, עםttl_index.is_ttl_index(נכנס ב-feat(mcp): העלאת תוכן ארוך בלי לעבור דרך המודל — PUT /api/agent/upload ו-upload_id #3502), כמו ה-TTL של סל המיחזור.database/manager.py, שבודק שכל קריאה ל-safe_create_indexעםexpire_after_seconds=אינה משפט-ביטוי שהערך שלו נזרק.safe_create_indexשמחזירFalseל-push_events_ttl← אירוע ברמת error.