הקונטיינר רץ `STORAGE_BACKEND=s3` ושרת ה-MCP נפל ל-`filesystem`. כלומר מסמך שסוכן כתב דרך MCP נחת על הדיסק בעוד ה-web חיפש אותו ב-S3 — שני מסלולים לאותו נכס, שמתפצלים בשקט (G2 / INV-STG1). מה נדרש כדי לסגור, ומה נמצא בדרך - **הסודות לא היו קיימים במקור-האמת.** `MINIO_ENDPOINT`/`ACCESS_KEY`/ `SECRET_KEY` חיו רק ב-env של Coolify. נוצרו ב-Infisical תחת `/apps/legal-ai` (tag `credentials`, באישור חיים) ונטענים ל-`~/.legal-mcp-http.env` — אותו דפוס כמו MCP_HTTP_SHARED_SECRET. הערכים עברו ב-stdin דרך infisical-set.sh; לא ב-argv ולא בהיסטוריה. - **`aioboto3` לא היה מותקן ב-venv המקומי.** מוצהר ב-pyproject אך חסר. מסלול ה-S3 מייבא אותו **עצלנית**, ולכן השירות היה עולה בהצלחה ונשבר רק בפעולת-הקובץ הראשונה — כשל שקט עד לשימוש. זו בדיוק הסיבה שהבדיקה רצה לפני ההפעלה ולא אחריה. אימות מהמארח לפני ההפעלה: put/get/delete מלא מול https://s3.nautilus.marcusgroup.org, וקריאת בלוב-ייצור קיים (573KB) מתוך 2,283 אובייקטים בדלי. ה-runbook עודכן: בלוק-האזהרה הוחלף בתיעוד המצב הסגור, כולל מלכודת הייבוא-העצל ופקודת-אימות שאפשר להעתיק. invariants: G2 (מסלול-אחסון אחד לשתי הדלתות) · INV-STG1 · §6
5.3 KiB
5.3 KiB