סרגל הצד של סשן מקומי ב-Codex Desktop עלול להציג תיקיות פרויקט ריקות כשיש הרבה סשנים
נתקלתי בבעיה ב-Codex Desktop ב-Windows שבה תיקיות פרויקט ישנות יותר בסרגל הצד הראו שאין שיחות, למרות שהסשנים עדיין היו קיימים על הדיסק.
מה ראיתי
במחשב עם מאות סשנים מקומיים של Codex:
מסד הנתונים של מצב ה-SQLite עדיין הכיל את שורות ה-thread.
קובצי ה-JSONL של ה-rollout עדיין היו קיימים תחת .codex/sessions.
קריאות ישירות ל-codex.exe app-server אל thread/list יכלו להחזיר את השיחות החסרות כשמשתמשים בעימוד.
סרגל הצד ב-Desktop עדיין הציג כמה תיקיות פרויקט כריקות, במיוחד תיקיות ישנות מחוץ לחלון ה-threads האחרונים שנטענו בתחילה.
זה גרם לזה להיראות כאילו סשנים נמחקו, אבל הם לא. הבעיה הייתה שה-UI לא טען מספיק threads אחרונים כדי לאכלס את קבוצות הפרויקטים האלה.
פתרון עוקף מקומי
יצרתי פתרון עוקף מקומי ל-Windows בלבד שמשאיר את אפליקציית Codex הרשמית ללא שינוי:
להעתיק את משאבי אפליקציית Codex הרשמית המותקנת לתיקיית patch מקומית נפרדת.
לחלץ את resources/app.asar.
לבצע patch למנהל ה-threads האחרונים בפרונטאנד כך שהמשיכה הראשונית של threads אחרונים תעקוב אחרי nextCursor לאורך כמה עמודים במקום להסתמך על עמוד ראשון קטן.
להגדיל את מגבלות ה-load-more וחיפוש סרגל הצד ל-1000.
להריץ את האפליקציה עם ה-patch דרך Electron runner נפרד עם CODEX_ELECTRON_USER_DATA_PATH משלו.
לשנות את שם החלון ל-Codex Patched כך שיוכל להתקיים לצד חלון ה-Codex הרשמי בלי בלבול.
פרויקט:
דיון רשמי על Codex:
תגובה בנושא קשור:
זה לא משנה את .codex/state_5.sqlite, לא מסדר מחדש את updated_at, ולא מוחק או כותב מחדש קובצי rollout. זה רק משנה bundle של פרונטאנד שהועתק.
תיקון מוצע במעלה הזרם
יהיה מועיל אם Codex Desktop יאפשר למשתמשים להגדיר את מגבלת ההיסטוריה של סשנים/סרגל הצד המקומיים, או אם סרגל הצד יבצע עימוד אוטומטית רחוק מספיק כדי לאכלס תיקיות פרויקט בצורה אמינה.
לכל הפחות, ה-UI צריך להבחין בין:
“לתיקייה הזו אין שיחות”
“רשימת השיחות עדיין לא נטענה במלואה”
למשתמשים עם היסטוריות מקומיות גדולות, תקרה ניתנת להגדרה כמו 50 / 100 / 500 / 1000 / הכל תהפוך את ההתנהגות לצפויה ותבטל את הצורך ב-patching מקומי.