# הקשר להמשך ישיר — 0050
תאריך: 2026-06-07 (סגירה)
אפליקציה: VitClip

## מה בנוי עכשיו
- **APK 0.1.0+5 (release 2005) הופץ ל-elyash7@gmail.com.** Backend revision `vitclip-backend-00029-dqf` חי.
- **תמלול הקלטות אישיות עובד end-to-end** (אומת חי ע"י המשתמש: "בסדר, עובד מעולה"):
  - אייקון מיקרופון ב-`AppBar` של `home_screen.dart` → `RecordingScreen` חדש (`lib/screens/recording_screen.dart`)
  - הקלטה עד 10 דק' (AAC-in-MP4 @ 64kbps mono 22050Hz), pulse animation, timer
  - שליחה → `recording_uploader.dart` → backend `POST /summarize/audio` (raw m4a body, 20MB cap)
  - תוצאה נכנסת ל-HistoryStore כ-`VideoSource.recording` עם תווית "הקלטה" ואייקון מיקרופון ורוד
  - גם הצ'אט הגלובלי קולט את ההקלטות (כי הוא משתמש באותה רשימה)
- **תיקון `/chat` anti-hallucination** (revision קודם בסשן): prompt חדש עם "ענה ישירות כשהמידע שם" → anti-substitution rule → refusal מסונן. `temperature: 0.4 → 0.3`. אומת חי על 5 טסטים.
- **JSON limit ב-backend הוגדל 64KB → 2MB** — תיקון בזמן אמת לבאג 413 שהמשתמש דיווח בצ'אט הגלובלי עם הרבה סיכומים בהיסטוריה.
- **`pubspec.yaml` הועלה ל-`0.1.0+6` והוסיף `firebase_core`/`firebase_auth`/`cloud_firestore`** (ע"י המשתמש בין הסשנים, בכוונה — תכנון cloud sync + nightly digest agent בסשן הבא). **אין עדיין שום קוד שמשתמש בהם.** ה-comment בpubspec: "feeds the nightly digest agent that surfaces ecosystem-relevant clips to the user every morning".

## הצעד הבא
**מיועד הסשן הבא לפי כוונת המשתמש ב-pubspec:** מימוש cloud sync של ההיסטוריה ל-Firestore + nightly digest agent (סורק את הסיכומים, מציף בכל בוקר את הרלוונטיים לאקוסיסטם).

תת-משימות צפויות (סדר מוצע):
1. הוספת Firebase project ל-VitClip (firebase_options.dart). חשבון: **אישי `elyash7@gmail.com`** (כפי שמתועד ב-CLAUDE.md ל-VitClip).
2. Anonymous Auth — `firebase_auth.signInAnonymously()` ב-`main.dart` startup. uid יציב פר-install.
3. סכמה Firestore: `users/{uid}/summaries/{id}` — מירור של HistoryStore. אופציונלית גם `digestPrefs/{uid}`.
4. Sync דו-כיווני ב-`HistoryStore` (כתוב לFirestore אחרי כל upsert; קריאה ב-load הראשונה אם מקומית ריקה).
5. Cloud Function (nightly cron): סורק `summaries` של כל uid, בוחר ecosystem-relevant של 24 שעות האחרונות, שולח FCM push.
6. Firestore Security Rules — `users/{uid}` for own uid only.

מועמדים פתוחים אחרים (לפי כוונת המשתמש — לא דחופים): keystore יציב במקום debug key, `pushDynamicShortcut` ב-MainActivity ל-Direct Share, YouTube cookies, iOS share extension.

## קבצים רלוונטיים לסשן הבא
- `lib/services/history_store.dart` (יצטרך layering מעל Firestore — אבל לא קראתי בסשן זה, יש לקרוא ראשונה)
- `lib/main.dart` (להזרים Firebase init + Anonymous Auth)
- `pubspec.yaml` (`firebase_core/auth/cloud_firestore` כבר קיימים — צריך `flutterfire configure --account=elyash7@gmail.com`)
- `lib/services/api_client.dart` ו-`lib/models/summary.dart` (Summary.toJson כבר משמש לאחסון; אפשר לנצל לכתיבה ל-Firestore)
- `backend/index.js` (אין שינוי נדרש בלקח לסשן הבא — Cloud Function חדש נפרד)

## חוסר ש-CLAUDE.md לא תופס ויכול לבלבל בסשן הבא
- כש-`pubspec.yaml` כבר עודכן ל-`0.1.0+6` אבל **אין קוד firebase**, `flutter build` יפעל תקין (חבילות לא נטענות אם אין import); אבל **`flutter pub get` כן ירד אותן** ויעלה זמן בילד. אם רוצים לבטל זמנית — להעיר את 3 השורות עם `#`.
- ה-`/summarize/audio` endpoint מצפה ל-Content-Type מ-`{audio/mp4, audio/m4a, audio/x-m4a, audio/aac, audio/mpeg}`. הקליינט שולח `audio/mp4` ו-Gemini מקבל כ-`audio/mp4`. אם אי-פעם הקליינט יחליף לקודק אחר — לעדכן את ה-allowlist בbackend.
