# כיצד מתבצע האיסוף

Canonical page: https://phishdestroy.github.io/TgWitness/he/docs/reference/collection/

היקף התצפית, עדכונים בזמן אמת, בדיקות חוזרות, קבצים מצורפים, פעולות עצמיות ומשמעותו של "פער", רשומה אחר רשומה.

TgWitness מתעד את מה שחשבון Telegram מחובר רואה. היומן משמר את התצפיות הללו, את סדרן ואת ההקשר הנלווה אליהן. הוא אינו מסיק פעולות בלתי נראות מהיעדר הודעה או מהיות החשבון מחובר.

## מהכניסה למערכת ועד ליומן

תרשים זרימה · אישור חשבון משתמש → בחר קבוצות וערוצים נגישים; בחר קבוצות וערוצים נגישים → שמור את הגדרות האירוע והקבצים המצורפים; שמור את הגדרות האירוע והקבצים המצורפים → התחל במעקב; התחל במעקב → קבל עדכונים מהלקוח הפעיל; קבל עדכונים מהלקוח הפעיל → יש ליישם את מדיניות המקורות והאירועים; יש ליישם את מדיניות המקורות והאירועים → הוסף תצפית חתומה; הוסף תצפית חתומה → סקירת היומן או ייצואו; הוסף תצפית חתומה → עיבוד כל קובץ מצורף בתור; עיבוד כל קובץ מצורף בתור → הוסף את תוצאת ההורדה · אישור חשבון משתמש · בחר קבוצות וערוציםנגישים · שמור את הגדרות האירועוהקבצים המצורפים · התחל במעקב · קבל עדכונים מהלקוחהפעיל · יש ליישם את מדיניותהמקורות והאירועים · הוסף תצפית חתומה · סקירת היומן או ייצואו · עיבוד כל קובץ מצורףבתור · הוסף את תוצאת ההורדה

**תרשים כטקסט**

1. אישור חשבון משתמש → בחר קבוצות וערוצים נגישים
2. בחר קבוצות וערוצים נגישים → שמור את הגדרות האירוע והקבצים המצורפים
3. שמור את הגדרות האירוע והקבצים המצורפים → התחל במעקב
4. התחל במעקב → קבל עדכונים מהלקוח הפעיל
5. קבל עדכונים מהלקוח הפעיל → יש ליישם את מדיניות המקורות והאירועים
6. יש ליישם את מדיניות המקורות והאירועים → הוסף תצפית חתומה
7. הוסף תצפית חתומה → סקירת היומן או ייצואו
8. הוסף תצפית חתומה → עיבוד כל קובץ מצורף בתור
9. עיבוד כל קובץ מצורף בתור → הוסף את תוצאת ההורדה

אישור, גישה למקור, אספן פעיל ומסירה מלאה הם נושאים נפרדים. התחברות מוצלחת אינה מעניקה גישה לכל קבוצה. תקשורת מחוברת אינה מבטיחה שכל עדכון רלוונטי הגיע.

## היקף הניטור: צ'אטים נבחרים, תיקייה או החשבון כולו

מקורות → **היקף הניטור** קובע אילו צ'אטים מתועדים בסביבת העבודה.

| מצב | תיעוד | שיחות חדשות |
| --- | --- | --- |
| צ'אטים נבחרים (ברירת מחדל) | רק הצ'אטים שתוסיף באופן ידני | לעולם לא מתווסף באופן אוטומטי |
| תיקיית טלגרם | שיחות באחת התיקיות של החשבון: שיחות הכלולות לפי שם, בתוספת הקטגוריות של התיקיה (אנשי קשר, שאינם אנשי קשר, קבוצות, ערוצים, בוטים), בניכוי השיחות שלא נכללו, ובמידה והתיקיה מציינת זאת, גם שיחות בארכיון | שיחות תואמות מתווספות ברגע שהן הופכות לפעילות; שיחות שאתם מוסיפים לתיקייה ב-Telegram נלקחות תוך שעה |
| החשבון המלא | כל צ'אט שהחשבון רואה | כל צ'אט חדש, קבוצה, צ'אט פרטי או בוט מתווסף ברגע שמגיע העדכון הראשון שלו |

- **סוגי המקורות** (ערוצים, קבוצות, צ'אטים פרטיים, בוטים) מצמצמים את מצבי התיקייה ו החשבון כולו. הצ'אטים הנבחרים יכולים להיות מכל סוג, כולל צ'אטים פרטיים ובוטים.
- **צ'אטים שהוחרגו** אינם נרשמים לעולם, בשום מצב. במצבי "תיקייה" ו"חשבון שלם", *הפעלת "החרג*" ו*"הסר"* על מקור כלשהו מוסיפה אותו לרשימה זו, כך שההיקף אינו מוסיף אותו שוב. בחירה ידנית מחודשת של הצ'אט (ב"מקורות" או מ"צ'אטים") מסירה אותו מהרשימה. הרשימה מכילה עד 5,000 צ'אטים; מעבר לכך, הפקודה *"הסר"* נדחית וניתן במקום זאת להשהות את הצ'אט.
- **פעולות משלך** (מופעל כברירת מחדל): הודעות שהחשבון הזה שולח, העריכות שלו ולחיצות על כפתורי המקלדת בתגובה. כאשר האפשרות כבויה, הודעות יוצאות ועריכות לא נכללות.
- מעבר לתיקיה או לחשבון כולו מחייב אישור: מצבים אלה מתעדים שיחות פרטיות והודעות של צדדים שלישיים, ויש להשתמש בהם אך ורק בחשבון ייעודי. האישור וכל שינוי בהיקף התיעוד הם רשומות חתומות ב-`scope.changed`.
- צ'אטים שנוספו על ידי ה-scope מופיעים כמקורות המסומנים כ-*"auto"*, ונרשמים כ-`scope.applied` (בתחילת התהליך ובכל שעה) או כ-`source.discovered` (צ'אט חדש במהלך המעקב). חזרה לצ'אטים שנבחרו מעכבת את כל המקורות שנוספו באופן אוטומטי.

מה שהמצבים הללו אינם יכולים לעשות:

- **צ'אטים סודיים** מוצפנים מקצה לקצה בין שני מכשירים ואינם מגיעים לעולם ל-TgWitness, בשום מצב.
- **אין תיעוד כלשהו כאשר TgWitness אינו פועל.** לאחר הפעלה מחדש, התוכנה מבקשת מ-Telegram עדכונים שהוחמצו ובודקת מחדש את הצ'אטים, אך Telegram אינה מחזירה את כל הנתונים לאחר הפסקות ארוכות. הדוחות ו-`verify.py` מציגים תקופות כאלה כפערים (ראו [כיסוי](https://phishdestroy.github.io/TgWitness/he/docs/reference/evidence/#coverage-continuity-gaps-and-unobserved-ids)).
- בתחילה מופיעים רק 1,000 השיחות הראשונות (ההגבלה מפורטת תחת **"פרמטרים"**); שיחות ישנות יותר מתווספות ברגע שהן הופכות לפעילות שוב. ההיסטוריה המוקדמת יותר של שיחה שנוספה אינה נטענת — צרו תמונת מצב של ההיסטוריה או ייצאו את השיחה במלואה כשתזדקקו לכך.
- תנאי תיקיות המשתנים כל הזמן (מושתק, נקרא) אינם חלים: צ'אטים כאלה נשארים תחת מעקב.
- לחיצות על **כפתורי הבוט המוטמעים (callback)** באפליקציה אחרת אינן נראות במושב השני; תגובת הבוט או העריכה שלו נרשמות. לחיצות על מקשי התגובה מגיעות כהודעות יוצאות ומסומנות כ-`button_press`.
- יותר צ'אטים פירושם יותר בקשות. טלגרם מגבילה חשבונות בשל נפח שהיא רואה כמוגזם, וזו סיבה נוספת להשתמש בחשבונות ייעודיים.

## היקף ובחירת אירועים

לכל סביבת עבודה יש מקורות משלה. TgWitness אינו מצטרף לקבוצות, אינו מקבל הזמנות ואינו מפרט את כל החברים באופן אוטומטי. על המקורות להיות כבר נגישים לחשבון. בעת ההפעלה, האספן בודק את המקורות הנבחרים כנגד השיחות הגלויות בחשבון; 1,000 השיחות הראשונות נבדקות, אלא אם כן נקבע אחרת **תחת "פרמטרים → צ'אטים הנקראים מרשימת החשבון"**. מקור נעדר מסומן כ**"גישה לא מאושרת**", ולא בהנחה שהוא הסיר אותך.

| הגדרה | אוסף | השפעה כאשר האפשרות מושבתת |
| --- | --- | --- |
| הודעות חדשות | הודעות שנשלחו כרגיל | בעריכות/מחיקות מאוחרות יותר ייתכן שלא יהיה טקסט שנלכד קודם לכן לשם השוואה. |
| עריכות | גרסאות ערוכות של ההודעות | שינויים ביניים אינם משוחזרים בהמשך. |
| מחיקות | הודעות מחיקה מוגבלות בהיקף והודעות ברמת החשבון שאינן מוגבלות בהיקף | הודעות על מחיקה אינן מתווספות ליומן. |
| תגובות | תמונות מצב של תגובות | לא מתווספים עדכוני תגובה נפרדים. |
| חברות | נשלחו הודעות שירות לחברים ועדכונים למשתתפים | הערות אלה של החברים אינן נכללות. |

ההגדרות חלות על כל המקורות שנבחרו בסביבת העבודה. שמור את הטופס כדי להחיל את השינויים; השינויים נרשמים עם ערכים חתומים של "לפני" ו"אחרי". השבתת קטגוריה אינה מוחקת רשומות קודמות. הפעלתה מחדש אינה משלימה עדכונים שהוחמצו.

רישומי פעילות ואירועים אחרים הקשורים לשירות הקבוצתי נשארים נפרדים מההגדרות הללו. הודעות שירות לחברים יכולות ליצור רישומי הודעות כאשר שירות החברות מופעל, גם אם תיעוד הודעות חדשות רגיל מושבת. אובייקטים של טלגרם שנלכדו שומרים על מטא-נתונים מוטמעים; הגדרה אינה מהווה כלל צנזורה.

**מחיקות בצ'אטים פרטיים ובקבוצות רגילות** מגיעות כ-ID של הודעה ללא צ'אט. לצ'אטים אלה יש רצף ID הודעות משותף לכל החשבון, ולכן כאשר הודעה עם ה-ID הזה נשמרה קודם לכן, הצ'אט שלה ידוע: המחיקה נרשמת באותו צ'אט עם הסבר מ-`chat_resolution` כיצד. מזהים שמעולם לא נשמרו נשארים **כמחיקה ללא היקף** עם מקור לא ידוע מפורש; האספן אינו משער. טלגרם לעולם אינה מציינת מי מחק הודעה; כאשר ההודעה שנמחקה נשלחה על ידי חשבון זה, הרישום מציין זאת (`deleted_message_was_outgoing`) מבלי לציין את שם המוחק.

## פעולות עצמיות

הודעות שנשלחו מהחשבון הנצפה מסומנות כ-`outgoing`. עריכה של הודעה יוצאת מציינת שבצ'אטים פרטיים ובקבוצות רק מחבר ההודעה יכול לערוך אותה, בעוד שפרסומים בערוצים יכולים לעבור עריכה על ידי מנהלים אחרים. כאשר הודעה יוצאת חוזרת על הטקסט של כפתור מהמקלדת של התשובה השמורה האחרונה באותו צ'אט, היא נושאת את הסימון `button_press` עם קישור לרישום של המקלדת.

האי-הכללת פעולות המשתמש עצמו חלה גם על בדיקות רקע חוזרות ועל היסטוריית צ'אטים חדשים אוטומטית. הודעות יוצאות שדילגו מקדמות את נקודת הבדיקה החוזרת, כך שהן אינן יכולות לחסום הודעות נכנסות מאוחרות יותר. פעולות מפורשות בלוח הבקרה ותמונות מצב של ההיסטוריה שהוזמנו ידנית נותרות מתועדות.

## מצב חקירה: הצטרפות לצוותים ושיחה עם בוטים

**מקורות → היקף התצפית → מצב חקירה** מכין את היקף התצפית לחשבון ייעודי שמצטרף לצ'אטים קבוצתיים, מפעיל בוטים וכותב אליהם: החשבון כולו, כל סוג מקור, פעולות עצמיות, ובכל צ'אט או בוט שמופיע – הפרופיל שלו ו- 200 ההודעות הגלויות האחרונות שלו. בדקו את הטופס ולחצו על "**שמור היקף**"; המעבר לחשבון השלם דורש אישור כרגיל.

- **כפתורים.** כפתורים המופיעים מתחת להודעה נשמרים יחד איתה ומוצגים ב**"צ'אטים**": קישורים, אפליקציות אינטרנט, קישורי כניסה, טקסטים להעתקה, נתוני החזרה, שאילתות מוטמעות, בקשות למספר טלפון או מיקום. קישורים מוצגים כטקסט ואינם נפתחים לעולם על ידי הפאנל. כאשר בוט משנה רק את הכפתורים (קישור תשלום חדש), זו נחשבת לגרסה חדשה של ההודעה, הן בעדכונים בזמן אמת והן בבדיקות חוזרות.
- **צ'אטים ובוטים חדשים.** במצבי "תיקייה" ו"חשבון שלם", **כאשר צ'אט או בוט חדש מופיע**, הוא נשמר מיד לאחר הופעתו:

  - הפרופיל שלו כקובץ `source.profile`: תיאור הבוט והפקודות, הטקסט "אודות" של משתמש, קבוצה או ערוץ, חברים, צ'אט מקושר וקישור הזמנה כאשר Telegram מחזיר אחד כזה;
  - ההודעות הגלויות האחרונות שלו (עד 1,000) כתמונת מצב של ההיסטוריה המסומנת ב-`new_chat`: ההודעות המוקדמות יותר בצ'אט קבוצתי שאליו הצטרף זה עתה, או מה שהבוט אמר לפני שהמעקב הבחין בצ'אט. הודעות שכבר נשמרו בזמן אמת אינן חוזרות על עצמן.

  צ'אטים שכבר נמצאים ברשימה בעת הפעלת המצב מתווספים ללא צילומי מסך. FloodWait מעכב פעולה זו והיא מתחדשת לאחר מכן; תקלות נרשמות וההקלטה החייה של הצ'אט נמשכת. - **פרופילים לפי בקשה. צ'אטים → פרופיל → שמור פרופיל** שומר **כעת** את הפרופיל הנוכחי של כל מקור; הפרופיל העדכני ביותר מוצג מעל ההודעות. - **לא נראה לעין.** לחצני מוטמע (callback) שנלחצו באפליקציית Telegram אחרת, החלון הקופץ או הקישור שבו הבוט מגיב ללחיצה כזו, וקישורי הזמנה המשמשים באפליקציה אחרת אינם מגיעים ל-TgWitness. מה שהבוט שולח או עורך לאחר מכן נרשם.

### פעולה מהפאנל

**השיחות** כוללות כעת מיני-לקוח המשתמש בחשבון ה-Telegram של סביבת העבודה הנבחרת:

- כתוב הודעה בטקסט רגיל או בחר **באפשרות "השב"** מתחת להודעה שנשמרה. ההודעה היוצאת המוחזרת נרשמת גם כאשר ההגדרה אינה כוללת עדכונים יוצאים.
- לחץ על **כפתור "Press"** מתחת לכפתור החזרה או הטקסט הנוכחי. השרת מביא את ההודעה שוב ומסרב לבצע את הפעולה אם המקלדת שונה מהגרסה השמורה. אישורי החזרה שומרים על הטקסט המוקפץ של טלגרם, דגל ההתראה וה-URL; התשובה מוצגת גם מתחת לשיחה. כתובות ה-URL נותרות טקסט שניתן לבחור ואינן נפתחות באופן אוטומטי.
- הרחב את **הקישור "Open Telegram**", הזן `@username`, קישור `https://t.me/name` ציבורי, `https://t.me/+invite` / `joinchat/invite`, או קישור לבוט עם `?start=parameter`, ולחץ על **"שמור תצוגה מקדימה**". הקישור המקורי והתצוגה המקדימה של Telegram נחתמים לפני ההצטרפות. **הצטרפות / פתיחה ותצפית:** לאחר ההצטרפות לקבוצה/לערוץ או פתיחת המשתמש/הבוט, הוסף את הצ'אט כמקור מופעל, ושלח את `/start` לבוט, כולל פרמטר ההתחלה שלו. בקשת הצטרפות הממתינה לאישור המנהל נרשמת כ"ממתינה", ולא כחברות.

הפעל את האפשרות **"התחל תצפית"** כדי לתעד תגובות נכנסות בזמן אמת. פעולות הלוח פועלות גם כאשר התצפית מושעית, אך רק התגובות הישירות שלהן מובטחות להישמר. מקורות שנוספו לאחרונה משתמשים בפרופיל/היסטוריית הקליטה שהוגדרו כאשר התצפית פועלת. כאשר מקור מושעה, הפעל אותו ב**"מקורות"** לפני שליחה או לחיצה על הכפתורים שלו.

`interaction.preview`, `interaction.requested` ו-`interaction.result` הם אירועים רגילים וחתומים ביומן, הכלולים בייצוא הראיות. בקשות מזהות את החשבון, את ההודעה/הכפתור או את רשומת התצוגה המקדימה, וכן אם התצפית הייתה פעילה. אישורים מבחינים בין הצלחה, דחייה, אישור בהמתנה ותוצאה לא ידועה. ייתכן שבקשה שנקטעה הגיעה ל-Telegram: בדקו את הצ'אט לפני שתתחילו פעולה חדשה. שימוש חוזר במזהה בקשה מאחזר את הקבלה השמורה שלה מבלי לחזור על הפעולה, כולל לאחר הפעלה מחדש. הלוח שומר את המזהה לאחר תגובה לא ברורה לאותה פעולה במהלך הפעלת הדף הנוכחית. הוא גם שומר את המזהה הזה כאשר רענון התצוגה נכשל לאחר פעולה מוצלחת: הקבלה נשארת גלויה, ולחיצה נוספת מאחזרת אותה. ל-RPCs של Callback ו-join יש ניסיון אחד ביישום; קריאות הניתנות לניסיון חוזר שומרות על מדיניות הניסיון החוזר שהוגדרה להן. מעבר מיידי בין צ'אטים מחק את הטיוטה ואת יעד התשובה ומבטל את השליחה עד שהשיחה החדשה נטענת.

מיני-לקוח זה מטפל בכפתורי טקסט וכפתורי החזרה. אפליקציות אינטרנט, בקשות לכניסה/טלפון/מיקום, תשלומים, שאילתות מוטמעות וקבצים מצורפים עדיין דורשים לקוח טלגרם; המטא-נתונים של הכפתורים השמורים נשארים גלויים. הפקדים החדשים משתמשים בטקסט באנגלית.

## רמות בדיקה חוזרת

בדיקות חוזרות מבקשות מ-Telegram שוב הודעות שנפספסו, עריכות והודעות שהשירות כבר לא מחזיר. מקורות המסומנים בכוכבית הם מקורות **בעדיפות**, הנבדקים מחדש כל 15 דקות כברירת מחדל; כל שאר המקורות נבדקים כל 6 שעות. צ'אטים שנבחרו מתחילים כמקורות בעדיפות, צ'אטים שנוספו באמצעות תיקייה או החשבון כולו נחשבים כמקורות רגילים. בכל מחזור נבדקים מחדש לכל היותר 30 מקורות, והשאר ממתינים לדקה הבאה; לאחר חיבור מחדש, מקורות בעדיפות נבדקים ראשונים. שני האינטרוולים מוגדרים תחת "מקורות" → "הגדרות הקלטה" → "בדיקה חוזרת" (0 מבטל את השכבה) ונרשמים כ-`recheck.changed`.

הודעות שלא נכללו נאספות מהמקום שבו הסתיים הסבב הקודם, עד למקסימום **המוגדר בפרמטרים → הודעות חדשות לכל בדיקה חוזרת** (1,000 כברירת מחדל) בכל סבב. לאחר הפסקה ממושכת, הבדיקה החוזרת ממלאת אפוא את כל הפער, גם כאשר הודעות בזמן אמת חדשות יותר מהפער נשמרו ראשית. צ'אט שעדיין נמצא בתהליך השלמת הפער נבדק שוב בדקה הבאה במקום להמתין למרווח הזמן הקבוע שלו; `recheck.completed` מציג `continues_after` עד לסיום התהליך.

ההשוואות כוללות טקסט הודעות, ישויות, מקלדות (כולל מחיקה) ותוכן/זהות הקובץ המצורף. שינוי חתימות הגישה לקבצים או הפניות לקבצים בלבד אינו מהווה עריכה, וכך גם מה ש-Telegram ממלאת באופן אוטומטי: טעינת תצוגה מקדימה של קישור, צפיות בסיפורים, מדיה בתשלום שנפתחה על ידי חשבון זה, קבלת חשבונית. כל גרסה שנשמרה ב"צ'אטים" מקושרת לרישום המלא ביומן, כולל מטא-נתוני המדיה.

## היסטוריית הודעות וייחוס

נניח שהאספן מבחין ב"פגישה ב-10:00", מאוחר יותר רואה "פגישה ב-11:00", ואז מקבל הודעת מחיקה. הוא מצרף שלוש תצפיות נפרדות. הטקסט המקורי נשאר, העריכה היא גרסה נפרדת, וההודעה מתעדת כי נצפתה מחיקה.

אם האיסוף החל לאחר שהגרסה הראשונה נעלמה, הטקסט הזה אינו זמין. אם בוצעו מספר עריכות בזמן שהמערכת הייתה במצב לא מקוון, ניתן לשמור רק את הגרסאות שנצפו לאחר מכן. הודעת מחיקה אינה יכולה לשחזר תוכן שמעולם לא נלכד.

שולח ההודעה אינו בהכרח העורך. בדרך כלל, טלגרם אינה מספקת את זהותו של מי שמחק הודעה או את זמן המחיקה המדויק. גורמים לא ידועים נשארים לא ידועים. תמונות מצב של התגובות ועדכוני המשתתפים מכילים רק את המספרים והזהויות שטלגרם חושפת לחשבון.

מספרי הרצף מבטאים את סדר התצפית. חותמת הזמן ב-UTC של האספן היא השעון המקומי שלו; חותמת הזמן של מקור Telegram מאוחסנת בנפרד כאשר היא מסופקת. אף אחת מהן אינה חותמת זמן עצמאית ואמינה.

## תמונות מצב היסטוריות

תמונת מצב מבקשת את ההודעות הגלויות האחרונות ממקור מופעל, עד 500 לכל בקשה. התוצאות מסומנות כ"תצפיות היסטוריות". הן עשויות לחפוף לתיעוד בזמן אמת, ותצפיות חוזרות נשמרות כרשומות נפרדות.

תמונות המסך עוקבות אחר מדיניות הקבצים המצורפים אך נותרות נפרדות ממעברי אירועים בזמן אמת. הן אינן משחזרות הודעות שנמחקו או גרסאות ביניים שהוחמצו. ניתן לבקש תמונת מסך בזמן ההשהיה; כל הקבצים המצורפים בתור ממתינים עד לתחילת התצפית והפעלת תהליך ההורדה.

## טיפול בקבצים מצורפים

הורדת קבצים מצורפים מופעלת כברירת מחדל ומושהית כאשר שטח הדיסק הפנוי נמוך מ-1 GiB. האספן מבצע את משימת התצפית על ההודעות והורדתן במקביל. המשימה שומרת על תיאור המדיה המקורי ומדיניות הגודל, כך שקובץ מצורף שעבר עריכה מאוחרת יותר לא יוחלף באופן סמוי.

ההורדות מתבצעות לאחר לכידת ההודעה. הורדה שהושלמה יוצרת רשומת `media.saved` עם ה-SHA-256 ומספר הבתים שלה. פעולות שהוחמצו, נכשלו, נבדקו מחדש או הופרעו מניבות תוצאות נפרדות. משימה בתור אינה מהווה הוכחה לכך שהקובץ נשמר. הקובץ המוגמר חייב גם להתאים למספר הבתים בתיאור הקובץ המצורף המקורי שנצפה. תגובה קצרה או ארוכה באופן בלתי צפוי אינה נרשמת כמדיה שנשמרה.

הגבלות נקבעות **לפי סוג**: תמונות, סרטונים, GIF-ים ואנימציות, הודעות וידאו מעגליות, הודעות קוליות, מוזיקה ואודיו, מדבקות וקבצים. ניתן להשבית כל סוג, ולכל סוג יש מגבלת גודל משלו בין 1 ל-2,000 MiB; סביבות עבודה חדשות מתחילות עם 20 MiB לתמונות, 100 MiB לסרטונים, 50 MiB לקבצים, אודיו וסרטונים עגולים, 20 MiB להודעות קוליות ו-GIF-ים ו 5 MiB למדבקות. *הגודל המרבי של הקובץ* נקבע עבור כל הסוגים בבת אחת. מדיניות שנשמרה לפני הטלת המגבלות לפי סוג שומרת על המגבלה היחידה שלה עבור כל סוג. סוג שהושבת מייצר רשומת `media.skipped`; קבצים בגודל לא ידוע או גדולים מדי אינם מורידים. לקבצים גדולים מוקצה זמן הורדה של לפחות 256 KiB/s. משימות נשמרות גם לאחר הפעלה מחדש, אך הפניות שפג תוקפן, אובדן גישה או קבצים שנמחקו עלולים עדיין למנוע שחזור. משימות קיימות שומרות על המדיניות שנשמרה עמן.

## השהיה, נעילה, ניתוק והפעלה מחדש

| פעולה או מצב | השפעה |
| --- | --- |
| החלף סביבת עבודה | משנה את תצוגת הפאנל; אוספים אחרים שומרים על מצבם. |
| נעל את החלונית או סגור את הכרטיסייה | השרת והמעקב ממשיכים לפעול. |
| השהיית התצפית | עוצר את האספן ושומר על קבצים מצורפים הממתינים בתור. |
| השבת מקור | מפסיק תיעוד עתידי בהיקף מוגדר; משימות מדיה בתור המיועדות לכך ממתינות בזמן שהכלי מושבת. |
| הסר מקור | הכלי מתעלם ממנו כמקור ומוחק את פרופילי המשתמשים שלו; הרישומים שכבר נשמרו נשארים ביומן שניתן להוסיף אליו בלבד. הקבצים המצורפים שעדיין ממתינים נרשמים ככישלון (`source_removed`). במצבי "תיקייה" ו"חשבון שלם" הוא גם אינו נכלל. |
| שינוי מסלול החיבור | מחייב הפסקה, סוגר לקוחות ישנים ומבטל התחברות שלא הושלמה. |
| עצור את תהליך ה-Python | מפסיק את כל סביבות העבודה; לא מתבצעות תצפיות בזמן שהכלי אינו מחובר. |
| הפעלה מחדש לאחר תצפית פעילה | מנסה לחדש את הטווח שנשמר באמצעות ההפעלה השמורה. הפסקה ידנית מבטלת כוונה זו. |

האספן מתעד ניתוקים, ניסיונות חוזרים, שגיאות, התחלות/עצירות ו- "פעימות לב" שזוהו. הפרעות קצרות עלולות להחמיץ בבדיקות קישוריות תקופתיות. לאחר הפעלה מחדש, מתבקשים העדכונים שהוחמצו מנקודת העדכון השמורה, ו הצ'אטים שנצפו נבדקים מחדש מעת לעת; ראו [פורמט הראיות](https://phishdestroy.github.io/TgWitness/he/docs/reference/evidence/#durable-collection-and-process-receipts-02). תמונת מצב מספקת הקשר; היא אינה מוכיחה שהפער תוקן.

## בידוד ואימות חשבונות

לכל סביבת עבודה יש יומן, הרשאה, מפתח חתימה, מדיניות ותור משלה. רק הלקוח הפעיל שלה יכול לתרום תצפיות בזמן אמת. לקוחות שנדחו, נמצאים בהמתנה, הוחלפו או נמצאים בבדיקת חיבור אינם יכולים לכתוב עדכונים בזמן אמת ביומן שלה. חשבונות שונים יכולים לעקוב אחר אותה קבוצה, אך היומנים שלהם נשארים נפרדים.

כל אירוע כולל את ה-hash הקודם וחתימת Ed25519. הייצוא מכסה את כל יומן סביבת העבודה באמצעות מספר סידורי קבוע. מסנני הלוח אינם מסננים את הייצוא; האיסוף עשוי להימשך מעבר לגבולותיו בזמן הכנתו.

**יומן האימות** בודק את שרשרת האירועים ואת החתימות דרך הגבול המוצג. תוצאותיו נמחקות כאשר סביבת העבודה משתנה, והלוח מזהה רשומות חדשות שנוספו לאחר הבדיקה. ייצוא ZIP מאמת גם את המדיה שנאספה.

חתימה תקפה מאמתת את תקינות הנתונים ביחס למפתח המהימן, ולא למקור המסר ב-Telegram או לאמיתות תוכנו. יש לשמור על טביעות אצבעות ונקודות ביקורת באופן עצמאי. ראו את [מודל הראיות](https://phishdestroy.github.io/TgWitness/he/docs/reference/evidence/), [את הפעילות היומית](https://phishdestroy.github.io/TgWitness/he/docs/reference/operations/) ואת [נוהל הקבלה בזמן אמת](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/LIVE_ACCEPTANCE.md) לדרישות האמון והמסירה.
