# الميزات والقيود

Canonical page: https://phishdestroy.github.io/TgWitness/ar/docs/reference/features/

ما تنفذه TgWitness اليوم، وما تحد منه منصة Telegram، وما يبقى من عمل مستقبلي.

مرجع التصميم: 26 أكتوبر 2026. حالة الاستخدام الأساسية هي مجموعات Telegram الخاصة والقنوات التي يمكن الوصول إليها من خلال الحسابات المتصلة. يفصل هذا المستند بين السلوك المنفذ، وحدود المنصة، والأعمال المستقبلية. لا يُعد عنصر البنية المستهدفة ادعاءً بأن الميزة موجودة بالفعل.

## تطبيق مستقل

تمتلك TgWitness عملية تثبيت ودليل بيانات ودورة حياة إصدار خاصة بها. وتقوم واجهة الويب المدمجة بإدارة الإعداد والمراجعة؛ ويمكن استخدام السجلات المصدرة بشكل مستقل.

يقوم المشغل بربط حساباته، واختيار المصادر المرئية لكل منها، والحصول على سجل ملاحظات محفوظ. تعرض اللوحة المحتوى، والتغييرات المحفوظة، ومصدر الملاحظات، والثغرات المعروفة. ويمكن لمحقق آخر التحقق من المواد المصدرة.

هناك أربع حالات متميزة ذات أهمية: تفويض الحساب، والوصول إلى المصدر، ووجود أداة تجميع فعالة، ومدى إثبات اكتمال التسليم. ولا تثبت أي من الحالات الثلاث الأولى الحالة الرابعة تلقائيًا. فالمجموعة غير النشطة ليست بالضرورة أداة تجميع فاشلة.

## التحقيقات المشتركة

يمكن للمسؤول إصدار [رموز وصول](https://phishdestroy.github.io/TgWitness/ar/docs/reference/access/) محددة النطاق لمساحات العمل و المحادثات الفردية، مع سبعة أذونات، وقيود على عناوين IP، وتاريخ انتهاء الصلاحية، وحدود تسجيل الدخول والتحكم في الجلسة. يمكن للمراجع الذي يتمتع بحق القراءة فقط فحص قضية ما دون الحاجة إلى الحصول على تفويض Telegram أو مفتاح اللوحة الرئيسية. يظل الوصول المحدود بالدردشة منفصلاً عن الإعدادات على مستوى الحساب وعمليات تصدير السجل الكامل.

يحافظ MTProxy التلقائي على مسارات Telegram العاملة من أربعة مصادر عامة أو من كتالوج المشغل. تحدد [أوضاع IP](https://phishdestroy.github.io/TgWitness/ar/docs/reference/connection/#ip-modes) ما إذا كان يجب الانتظار حتى يتوفر بروكسي آخر في حالة الفشل أم يمكن استخدام مسار مباشر مسموح به صراحةً. تتمتع طلبات HTTP الخارجية بمسار منفصل ومفتاح إيقاف.

## أدوات الأرشفة

تضيف النسخة الحالية `main` [إمكانية الحصول على السجل التاريخي](https://phishdestroy.github.io/TgWitness/ar/docs/reference/history/)، [والبحث والتحليل في الأرشيف](https://phishdestroy.github.io/TgWitness/ar/docs/reference/analysis/)، [وMCP للقراءة فقط](https://phishdestroy.github.io/TgWitness/ar/docs/reference/mcp/)، [وOCR/نسخ نصي محلي](https://phishdestroy.github.io/TgWitness/ar/docs/reference/media-analysis/)، و [webhooks الصادرة](https://phishdestroy.github.io/TgWitness/ar/docs/reference/webhooks/). هذه ميزات تم التحقق من مصدرها، وأُضيفت بعد النسخة التجريبية المحمولة 0.7.0. تظل التقارير التحليلية والنصوص المعترف بها منفصلة عن الأحداث التي تم تسجيلها.

## إضافات اختيارية

الإعداد اليومي هو: الحساب → المصادر → المراقبة. **«الإضافات»** هي وجهة منفصلة تتضمن روبوت «Telegram Witness» ومعاينة التقاط GitHub. يوضح كل منها مدى توفره ومتطلباته قبل عرض الإعدادات. يؤدي اختيار البطاقة إلى فتح التعليمات؛ ولا يؤدي إلى التسجيل أو بدء الخدمة.

يتكون إعداد البوت من ثلاث خطوات: إنشاء وصول للقراءة فقط، واختيار إعدادات النشر، و التشغيل على مضيف Witness. يتم الكشف عن خيارات الشبكة والنشر، والاتصالات الحالية، و أوامر التحقق عند الطلب. يختلف التكوين الذي تم تنزيله عن «Witness» قيد التشغيل. يؤدي تبديل الإضافات إلى الاحتفاظ بالمسودة؛ بينما تؤدي تغييرات الحساب وقفله إلى مسح الرمز المؤقت والنموذج. يتضمن الدليل المدمج تعليمات التشغيل. [تقوم GitHub Actions بالتقاط](https://github.com/phishdestroy/TgWitness/blob/main/docs/SEALED-ACTIONS.md) تشغيل مجمع مثبت من فرعك، وتلتقط محادثة واحدة، وتنتج تسليمًا مشفرًا مع مصدر سير العمل.

## بروتوكول ومصادر خاصة

**MTProto هو بروتوكول Telegram؛ أما Telethon فهي مكتبة Python التي يستخدمها TgWitness للتواصل عبر MTProto.** وهما ليسا طريقتين بديلتين للاتصال. تستخدم عملية التجميع بروتوكول MTProto؛ بينما ينشر الشاهد الاختياري عمليات التحقق الموقعة عبر واجهة برمجة تطبيقات الروبوت (Bot API).

لكل مساحة عمل عميلها المصرح له وتدفق تحديثات الحساب الخاص بها. تقوم TgWitness باختيار الملاحظات من المصادر المُعدة مسبقًا وتقديم طلبات صريحة منفصلة لوظائف مثل لقطات السجل وتنزيل الوسائط.

لا يحتاج المصدر الخاص إلى اسم مستخدم عام. يُعد نوع النظير في Telegram والمعرف الرقمي هما معرّفي الهوية؛ أما الألقاب وأسماء المستخدمين فيمكن تغييرها. يعتمد الوصول على العضوية والأذونات الحالية. لا تقوم TgWitness تلقائيًّا بإضافة المصادر أو تجاوز موافقة الانضمام. ولا يُعد هاش الوصول من حساب آخر رمز وصول عالمي.

يجب أن يأخذ نموذج التجميع في الاعتبار السجل المخفي قبل الانضمام، وأدوار المشاركين/المسؤولين ، وإلغاء الجلسات، وإزالة الأذونات أو تغييرها، والانتقال من المجموعة إلى المجموعة الفائقة ، والمواضيع/المنتديات، والمناقشات المرتبطة، وهويات القنوات، والمرفقات غير المتاحة . لم يتم اختبار كل تركيبة من هذه التركيبات في بيئة حية بعد.

يتم التحقق من ظهور المصدر عند بدء تشغيل أداة التجميع. وغياب مصدر ما عن نتائج الحوار المحددة يعني أن **الوصول إليه غير مؤكد،** وليس إزالة مؤكدة. ولا يمنع عدم توفر مصدر واحد من مراقبة المصادر الأخرى التي يمكن الوصول إليها. لا تضع أبدًا روابط الدعوة أو الجلسات الحقيقية في الأماكن العامة.

## حسابات متعددة

يدعم اللوحة أي عدد من **مساحات العمل**، ولكل منها ما يلي:

- التفويض، والخزينة المشفرة، ومسار الاتصال.
- سجل SQLite وهوية التوقيع Ed25519.
- المصادر المختارة، وقائمة انتظار الوسائط، وإعدادات الالتقاط.
- حالة المراقبة، والأخطاء، ونقاط التحقق، وعمليات التصدير.

لا يؤدي تبديل مساحة العمل المعروضة إلى إيقاف عمل أداة تجميع أخرى. يتم رفض التفويض المزدوج للحساب عبر مساحات العمل. لا يمكن إعادة تخصيص سجل مرتبط بالفعل بحساب Telegram واحد لحساب آخر؛ لكن يُسمح بإعادة ربط الحساب نفسه. وهذا يحافظ على هوية الحساب ونطاق معرّف الرسالة ذي الصلة.

لا يوجد عدد ثابت ولا ضمان محدد للإنتاجية. تتشارك مساحات العمل في عملية Python وحلقة الأحداث. ولا يزال إنشاء عمال حسابات منفصلين مهمة مستقبلية. ول عزل العملية حاليًا، استخدم تثبيتات منفصلة ومنافذ ودلائل بيانات منفصلة.

قم بتعيين المصادر التي يمكن لكل حساب الوصول إليها. قد تراقب حسابات مختلفة نفس المجموعة، لكن ملاحظاتها تظل منفصلة وتحتفظ بمصدرها. لا يُعتبر حسابان على جهاز واحد يتحكم فيه مشغل واحد شاهدين مستقلين. تتم عمليات التصدير لكل مساحة عمل على حدة؛ ولا يتم تنفيذ حزمة قضايا مدمجة أو خط زمني شامل لـ Telegram.

## التسجيل وتحديد المصدر

توفر «المصادر» خيارات لكل حساب على حدة للرسائل الجديدة، والتعديلات، والحذف، وردود الفعل والعضوية. تحتفظ الإعدادات المسبقة إما بجميع الفئات أو بالرسائل/التعديلات/الحذف. تنطبق السياسة على المجموعات المحددة في مساحة العمل، وتبقى سارية بعد إعادة التشغيل، وتكون موقعة مع التغييرات قبل وبعد. الإعدادات الافتراضية تحتفظ بجميع الفئات. إيقاف تشغيل فئة ما لا يؤدي إلى إزالة السجلات القديمة؛ كما أن إعادة تشغيلها لا تؤدي إلى إعادة بناء الأحداث الفائتة. السجلات التشغيلية، وأحداث خدمة المجموعة الأخرى، ولقطات السجل الصريحة هي أمر منفصل. قد تحتفظ كائنات Telegram الملتقطة بالبيانات الوصفية المضمنة بغض النظر عن أزرار التحديث المنفصلة. لا توجد حتى الآن أي تجاوزات للفئات لكل مجموعة.

| المواد | تم التسجيل الآن | الحدود |
| --- | --- | --- |
| الرسالة | النص، ومعرّفات الأقران/الرسائل، وبيانات المرسل الوصفية، والردود، ومغلف التحديث الأصلي | لا يوجد توقيع Telegram قابل للتحقق منه علنًا لهذه الرسالة |
| تحرير | الإصدار الجديد الذي تمت ملاحظته وأي إصدارات تم حفظها سابقًا | قد تُفقد التعديلات المؤقتة التي تتم أثناء فترات التعطل؛ والمرسل ليس بالضرورة هو المُعدِّل |
| الحذف | الإشعارات والمحتوى الذي تم تسجيله مسبقًا، إن وجد | عادةً لا يُذكر من قام بالحذف أو الوقت الدقيق للعملية |
| الحذف غير المحدد النطاق | إشعار أصلي على مستوى الحساب دون التخمين بشأن الطرف المقابل | يُعد الربط الدقيق مع معرّفات الحسابات المحفوظة مسبقًا من مهام العمل المستقبلية |
| ردود الفعل | عدد الزيارات والهويات الحديثة الظاهرة | تتطلب الحصول على قائمة كاملة بالقنوات المتاحة إجراء استعلامات منفصلة؛ وقد تخفي القنوات هوياتها |
| العضوية | رسائل الخدمة وتحديثات المشاركين التي تم تسليمها | يعتمد مستوى الظهور على الدور ونوع الدردشة؛ ولا يُعتبر غياب الأحداث دليلاً على عدم وجودها |
| إجراءات المسؤول | التحديثات ذات الصلة فقط | لم يتم تنفيذ استقصاء منفصل لسجلات الإدارة |
| مرفق | وصف النسخة الأصلية، وعدد البايتات التي تم تنزيلها/SHA-256 ونتائج المحاولات | قد يكون الملف المفقود غير قابل للاستعادة؛ ولا يتم استبدال أحدث إصدار |
| التاريخ | لقطة واضحة للرسائل المرئية الحالية | لا يعيد بناء جميع التعديلات أو المحتوى المحذوف |
| عملية التجميع | التشغيل/الإيقاف، إشارة النبض، الأخطاء، الإعدادات، النطاق وإيصال البرنامج | تقرير ذاتي، وليس شهادة مستقلة عن العملية |

لا يُنسب أي فعل إلى شخص ما إلا إذا أشار المصدر فعليًّا إلى ذلك الشخص. وإلا، فإن الواجهة تُبلغ عن عدم وجود الإسناد. وتُعتبر أسماء المستخدمين والأسماء سمات مُلاحظة، وليست دليلاً على الهوية في العالم الواقعي.

## السعة وحدود Telegram

لا يوجد عدد محدد من الدردشات التي يمكن مراقبتها بجودة مضمونة. تعتمد السعة على عدد الأحداث في الثانية في أوقات الذروة، وحجم المرفقات وعددها، و RPCs الإضافية، والحسابات النشطة، وزمن استجابة القرص/المساحة الخالية، وظروف الشبكة، وحدود Telegram، والتأخير المقبول، وعمق قائمة الانتظار.

يميز Telegram بين التسليم السلبي والاستقصاء القصير النشط. تصف وثائق التحديث الخاصة به استدعاءات `updates.getChannelDifference` إضافية للقنوات المفتوحة والمجموعات الفائقة، وتوصي بما لا يزيد عن **عشرة مصادر يتم استقصاؤها بشكل قصير في وقت واحد**. وهذا ليس حدًا أقصى يبلغ عشر مجموعات مختارة ولا ضمانًا للاكتمال.

| الوضع | الغرض | الحالة |
| --- | --- | --- |
| ملاحظة قياسية | تسجيل التحديثات الواردة من مصادر مختارة | تم التنفيذ |
| ملاحظة ذات أولوية | فحوصات إضافية للتأكد من عدم وجود تباينات في مجموعة مصادر محددة | لم يتم تنفيذه كوضع مستخدم |

لا يُعد الاستقصاء العشوائي عالي التردد، الذي يتجاهل FloodWait أو يفترض سعة خطية من الحسابات الإضافية، نموذجًا صالحًا لتحديد الحجم. الحدود الافتراضية هي أول 1,000 محادثة مدرجة، بحد أقصى 500 رسالة لكل لقطة سجل، 1–2,000 ميبيت لكل ملف تم جمعه حسب النوع، و4 جيجابايت من محتوى ZIP الموقّع غير المضغوط؛ ويتم تغيير كل منها لكل مساحة عمل ضمن **«المعلمات**». لا يوجد حد أقصى ثابت لعدد الأحداث في عمليات التصدير. يقتصر الاستخدام الاحتياطي للمتصفح على 128 ميبيت (MiB) افتراضيًّا؛ أما واجهة سطر الأوامر (CLI) للبث المباشر فلها حد نقل قابل للتكوين، يبلغ 5 جيجابايت (GiB) افتراضيًّا.

يقيس `tools/check_capacity.py` استيعاب وتصدير البيانات الاصطناعية المحلية. ولا تمثل نتائجه قياسات تسليم Telegram أو عددًا مضمونًا للمحادثات الحقيقية. انظر [ملف VERIFICATION.md](https://phishdestroy.github.io/TgWitness/ar/docs/reference/verification/) للاطلاع على الإصدار الذي تم قياسه وحجم العمل.

## الموثوقية والاستعادة

تشمل السلوكيات المُنفَّذة: معاملات SQLite WAL/المتزامنة؛ عمليات الكتابة الذرية للرسائل ومهام الوسائط؛ المهام الدائمة وتأخيرات إعادة المحاولة؛ واصفات الإصدار الأصلي؛ محاولات إعادة محدودة؛ وFloodWait للوسائط الدائمة؛ وتنزيلات الوسائط خارج فترة انتظار الشبكة الخاصة بحدث النص؛ وعمليات التصدير ذات البادئة الثابتة مع استمرار عمليات الكتابة اللاحقة؛ والإعدادات المتجانسة و سجلات التدقيق؛ والحفاظ على التفويض العامل بعد فشل تسجيل الدخول البديل؛ عزل مساحة عمل إضافية تالفة؛ محاولات إعادة اتصال صريحة؛ تقارير متميزة عن فقدان التفويض؛ وكشف التغييرات في الوقت الفعلي باستخدام ساعة أحادية الاتجاه.

يتم حفظ نقاط البداية والنهاية (pts/qts) وتسلسل (seq) الحساب والقناة واستئنافها بعد إعادة التشغيل، كما يتم إعادة فحص الدردشات المراقبة بشكل دوري؛ انظر [تنسيق الأدلة](https://phishdestroy.github.io/TgWitness/ar/docs/reference/evidence/#durable-collection-and-process-receipts-02). إن حفظ الموضع بشكل دوري لا يُعد إقرارًا فوريًا وخاليًا من الفقدان بقبول السجل.

يتم تسجيل الرأس السابق والحد الفاصل بين الأوضاع المتصلة وغير المتصلة عند بدء كل عملية. ولا يُعامل السجل الحالي على أنه إصلاح للفجوات. سعة تخزين Telegram محدودة؛ ولا يمكن لـ `differenceTooLong` إعادة بناء كل المحتوى المختفي. ويجب أن تظل الفجوات التي لا يمكن استردادها واضحة حتى لو نجحت لقطة سجل لاحقة.

## نموذج الأدلة

يُسجل كل حدث التسلسل، ووقت الملاحظة المحلي بتوقيت UTC، ووقت المصدر عند توفره، والنوع، والمصدر، والفاعل عند توفره، والحمولة الأصلية، والتجزئة السابقة، والتوقيع. كما تحتفظ ملاحظات الرسائل بسياق حساب المجمع/التشغيل.

يحتوي إيصال العملية الموقّع على معرّف تشغيل عشوائي؛ وإصدارات TgWitness/Python/OS/التبعيات؛ وقيم SHA-256 لملفات المصدر والبصمة المجمعة؛ والحساب الأولي، ونطاق العمل والإعدادات؛ وقراءات UTC/monotonic؛ ورأس السجل السابق. يتم تسجيل تغييرات الإعدادات، وعمليات البدء/الإيقاف، والأخطاء في نفس السجل. يتم الاحتفاظ بنقاط التحقق عند بدء التشغيل، كل خمس دقائق أثناء المراقبة (قابلة للتعديل)، وعند الإيقاف المنظم. يمكن لنقطة التحقق المحلية المحتفظ بها اكتشاف التراجع إلى بادئة سجل سابقة.

| الآلية | ما يثبته |
| --- | --- |
| ملف SHA-256 | تتطابق البايتات مع ملخص معروف |
| سلسلة هاش الأحداث | تسلسل التسجيلات/الربط بالنسبة لحدود معروفة |
| Ed25519 | التوقيع باستخدام مفتاح معين |
| نقطة تفتيش مستقلة | وتتوافق المواد اللاحقة مع الحدود المحددة |
| قياس حجم ملف البرنامج | تقرير ذاتي من أداة التجميع حول الملفات التي تم قياسها |
| رد مستقل وصحيح من إدارة أمن النقل (TSA) | وجود بايتات معينة في وقت TSA في ظل افتراضات ثقة صريحة |

تم تنفيذ إعداد طلبات RFC 3161 والتحقق من استجابات OpenSSL. أما الإرسال التلقائي فلم يتم تنفيذه. ولا يُعد الطلب أو التوقيع المحلي الذي يحمل توقيت الجهاز طابعًا زمنيًا مستقلًا. انظر [TIMESTAMP.md](https://phishdestroy.github.io/TgWitness/ar/docs/reference/timestamp/).

يمكن للمشغل الذي يتحكم في أداة التجميع ومفتاح التوقيع أن يزور ملاحظات جديدة موقعة. ولا تثبت التوقيعات أصل الرسائل في Telegram أو صحتها أو مقبوليتها القانونية التلقائية. وتتطلب الحراسة الأكثر صرامة وجود نقطة تفتيش مستقلة/تخزين زمني، وضوابط وصول للمفاتيح، وسجلات نقل، والتحقق من برامج موثوقة.

## التصدير والنشر والتسليم

يحتوي ملف ZIP الموقّع على ملفات JSONL و CSV و HTML الأصلية، والمرفقات المحفوظة، والتجزئات، و بيان محتويات موقّع، وأداة تحقق سهلة الاستخدام. ويغطي مساحة عمل واحدة وبادئة كاملة ثابتة للسجل. لا تقوم عوامل تصفية البحث في اللوحة بإزالة السجلات دون إشعار. يتم استبعاد المفاتيح السرية، والرموز المميزة، وجلسات Telegram؛ وقد تحتوي الملاحظات الأصلية مع ذلك على معلومات شخصية وبيانات وصفية لـ Telegram.

احتفظ بملخص ملف ZIP، والبصمة الموثوقة، ونقطة الفحص، وإيصال المعالجة، وسجل التسليم بشكل منفصل. استخدم أداة تحقق من تثبيت موثوق به، بدلاً من الوثوق بالكود القابل للتنفيذ لمجرد ظهوره في ملف ZIP الذي تم فحصه.

تُوزَّع واجهة المتصفح محليًّا دون الحاجة إلى Node.js أو شبكات توزيع المحتوى (CDNs) أو الخطوط الخارجية. يتحكم رمز مشغل واحد في عملية التثبيت. يتطلب الوصول عن بُعد استخدام بروتوكول HTTPS أو نفق SSH. يتم توفير تعريفات أصلية بلغة Python والحاويات، مع أمثلة للخدمات في [المجلد deploy/](https://github.com/phishdestroy/TgWitness/blob/main/deploy/README.md)؛ ويتم سرد فحوصات النظام الأساسي التي تم تنفيذها بشكل منفصل.

تستخدم مساحة العمل الافتراضية جذر البيانات؛ بينما تستخدم مساحات العمل الإضافية `profiles/<id>/`. يتطلب النسخ الاحتياطي إيقاف العملية ومجموعة البيانات/المفاتيح الكاملة. ملفات ZIP الخاصة بالأدلة ليست نسخًا احتياطية للتطبيق. يمكن لـ Secrets استخدام مفتاح رئيسي خارجي لدليل بيانات جديد؛ يتم توفير تشفير السجل/الوسائط بواسطة قرص/وحدة تخزين المشغل. انظر [CONNECTION-SECURITY.md](https://phishdestroy.github.io/TgWitness/ar/docs/reference/connection/) و [OPERATIONS.md](https://phishdestroy.github.io/TgWitness/ar/docs/reference/operations/).

## معايير الإصدار المستقر

قبل إصدار نسخة مستقرة، يجب توضيح ما يلي:

1. مجموعات خاصة حقيقية، ومجموعات كبيرة، ومنتديات، وقنوات مع أدوار الأعضاء/المسؤولين و سجل المحادثات المخفي/المرئي، بما في ذلك تسجيل الدخول/التوثيق الثنائي (2FA)، وإلغاء الترخيص، وفقدان حق الوصول.
2. التعديلات والحذف وردود الفعل والعضوية والوسائط الخاضعة للرقابة مقابل الإجراءات المعروفة.
3. تعطل العمليات/الخادم، أعطال الأقراص/امتلاء القرص، مراجع الملفات منتهية الصلاحية، FloodWait، انقطاع الاتصال بالشبكة، الملفات التالفة، والتراجع عن التغييرات في قاعدة البيانات.
4. استخدام متواصل لحسابات متعددة مع تأخير محسوب، وقوائم انتظار، وذاكرة، ومساحة قرص، بما في ذلك المصادر الهادئة والصاخبة معًا.
5. فجوة زمنية بين تقدم حالة MTProto وقبول السجل.
6. تثبيت نظيف على مصفوفة نظام التشغيل/الحاوية المقصودة واستعادة النسخ الاحتياطي التي تم التحقق منها.
7. مراجعة مستقلة للأمور المتعلقة بالأمن والتوقيعات وادعاءات الإسناد/الأدلة.

لا يزال العمل مستمرًا على استقصاء سجلات الإدارة، وقوائم المفاعلات الإضافية، والاستقصاء ذي الأولوية، والعاملين المنفصلين، والتشفير على مستوى التطبيق بأكمله. يتم وصف الوصول المحدود إلى اللوحة في [قسم «الوصول والأذونات](https://phishdestroy.github.io/TgWitness/ar/docs/reference/access/)». يدعم الإصدار 0.6 TData المحدود لحساب واحد واستيراد ملفات الحساب الموصوف في [ACCOUNTS.md](https://phishdestroy.github.io/TgWitness/ar/docs/reference/accounts/). يرجى مراجعة شروط واجهة برمجة تطبيقات Telegram قبل النشر. توجد المراجع البحثية ونتائج البحث المتعلقة بالمنصة في [ملف RESEARCH.md](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/RESEARCH.md).
