95571e0f05bce2b2cdcb226e8c6733886e0d1f21
הקונטיינר והשרת ה-HTTP הם שתי דלתות לאותו קורפוס, ולכן חייבים לדרג אותו. הם לא עשו זאת: הקונטיינר רץ `MULTIMODAL_ENABLED=true`, בעוד שרת ה-MCP נפל לברירת-המחדל `false` — `~/.env` אינו מגדיר את הדגל כלל. סוכן ו-UI יכלו לענות על אותה שאלה מתוך קבוצות-תוצאות שונות, בלי שאיש ידע (G2 — מסלול מקביל שמתפצל בשקט). מה שונה - `MULTIMODAL_ENABLED: "true"` בקונפיג ה-pm2 של legal-mcp-http. - תיעוד השירות ב-operations-runbook (פורט, שער-Bearer, ו**האזהרה שהחשובה מכולן**: קוד ב-`mcp-server/` לא נכנס לתוקף עד restart — זהו תהליך ארוך-חיים, בניגוד ל-stdio שנטען בכל סשן. שלושה מיזוגים היום רצו על קוד ישן עד שהבחנתי). מה **לא** שונה, ולמה `STORAGE_BACKEND` נשאר לא-מוגדר. הקונטיינר רץ `s3`, השרת נופל ל-`filesystem`, וזה דריפט אמיתי — סוכן שכותב דרך MCP כותב לדיסק בעוד ה-web קורא מ-S3. אבל הפיכת הדגל דורשת `MINIO_ENDPOINT`/`ACCESS_KEY`/ `SECRET_KEY`, ואלה **אינם ב-Infisical** — רק ב-env של Coolify. בלעדיהם `MINIO_ENDPOINT` נפתר לברירת-המחדל `http://minio:9000` (שם-רשת פנימי של דוקר, לא נגיש מהמארח) וכל פעולת-בלוב נשברת. יצירת סוד חדש מחייבת אישור חיים לשם/תיקייה/תגית, ולכן הדריפט מתועד בבירור ב-runbook עם בדיוק מה שצריך כדי לסגור אותו — במקום להישאר ידיעה שבעל-פה. MinIO **כן** נגיש מהמארח: `https://s3.nautilus.marcusgroup.org` מחזיר 200 ב-`/minio/health/live` (אומת), כך שהחסם היחיד הוא הסודות. invariants: G2 (שתי דלתות, דירוג אחד) · §6 (הדריפט הנותר מתועד, לא נבלע)
Description
AI Legal Decision Drafting System — MCP server, web upload, RAG search
Languages
Python
66.2%
TypeScript
31.7%
JavaScript
1.1%
Shell
0.7%
CSS
0.2%