feat(storage): #106.5 — חיווט-קריאה serve_blob (presigned + dual disk-fallback) #198
Reference in New Issue
Block a user
Delete Branch "worktree-storage-read-wiring-presigned"
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?
מה
חיווט-קריאה של 4 endpoints מגישי-קבצים דרך helper יחיד
serve_blob(INV-STG6), לפי אסטרטגיית-ה-cutover שהפאנל התלת-מודלי (Opus+DeepSeek+Gemini) אישר פה-אחד (2026-06-11):filesystem(פעיל בייצור)FileResponseמדיסק — משמר-התנהגות, אפס שינויs3/dual+ אובייקט ב-MinIOdual+ misss3+ miss + ללא-דיסקכשל
normalize_key/presign → fallback-לדיסק, לעולם לא 500 (logger.exception, לא בליעה שקטה).גבול בלתי-הפיך
ה-cutover (#106.6 flip ל-s3) + WORM (#106.7) נשארים נעולים מאחורי אישור-אדם — הכרעת-הפאנל פה-אחד (
proceed_autonomously=false, מערכת משפטית פונה-החוצה). PR זה הפיך: תחתfilesystem(הפעיל) אין שינוי-התנהגות; ה-helper מוכן להפעלה כשתחליט flip מפוקח + curl-ירוק per-endpoint.Invariants
בדיקות
4 חדשות
web/tests/test_serve_blob.py(filesystem / dual-in-S3 / dual-fallback / s3-404) — עוברות. py_compile OK. (תשתית-טסטים ראשונה ל-web/.)מקור: פאנל תלת-מודלי, תיעוד ב-TaskMaster #106.6.
🤖 Generated with Claude Code