# آنچه آزمایش شده است

Canonical page: https://phishdestroy.github.io/TgWitness/fa/docs/reference/verification/

آزمون زنده تلگرام، بررسی‌های خودکار، بررسی‌های مرورگر و آنچه هنوز تأیید نشده است.

## آزمایش زنده تلگرام، کل حساب · ۲۹ اکتبر ۲۰۲۶

همان حساب کاربری پس از تست زیر همچنان فعال بود. در ۲۹ اکتبر ساعت ۱۲:۱۰ به وقت جهانی، دامنه آن به کل حساب کاربری (کانال‌ها، گروه‌ها، چت‌های خصوصی و ربات‌ها) تغییر یافت؛ پنل درخواست تأیید کرد و دفترچه ثبت‌شده امضا شده آن را ثبت نمود. تا ساعت ۱۷:۵۹ به وقت جهانی، دفترچه حاوی موارد زیر بود:

| ثبت‌شده، ۲۷ اکتبر ۲۱:۳۶ تا ۲۹ اکتبر ۱۷:۵۹ به وقت جهانی | شمارش |
| --- | --- |
| سوابق دفترچه | 9,968 |
| پیام‌های جدید | 5,308 |
| از آن‌ها پس از تغییر به کل حساب | 3,878 |
| حذف‌ها | 784 |
| از آن‌ها پس از اینکه TgWitness پیام را ذخیره کرده بود، حذف شدند | 596 |
| ویرایش‌ها | 41 |
| پیام‌های اضافه شده توسط بازبینی مجدد | 2,273 |
| پیام‌هایی که دیگر قابل بازیابی نیستند | 18 |
| پیام‌ها با اسنپ‌شات‌های تاریخچه ذخیره می‌شوند | 242 |
| پیوست‌های ذخیره‌شده | 247 |
| شروع جمع‌آوری | 19 |
| Telegram FloodWait مکث می‌کند | 26 |

- بررسی **Verify** پنل، امضاها و زنجیره هش تمام ۹٬۹۶۸ رکورد را تأیید کرد.
- پیام‌ها از ۲ گروه یا کانال و ۳ چت خصوصی و ربات‌ها ارسال شده‌اند. یک دکمه پیام در **چت‌ها** فشرده شد؛ درخواست و پاسخ تلگرام در دفترچه شواهد ثبت شده است.
- چت‌های جدید هنگام اسکن مجدد حساب توسط جمع‌آورنده در هنگام راه‌اندازی مجدد اضافه شدند. ذخیره پیام‌های قبلی چت‌های جدید (`history = 0`) غیرفعال بود، بنابراین در اینجا پوشش داده نشده است.

موارد پوشش داده نشده: واکنش‌ها، تغییرات عضویت، پروفایل افراد، ارسال پیام، پیوستن از طریق دعوت‌نامه، پروکسی‌ها، اعلان‌ها، ربات ویitness و چندین حساب به طور همزمان. فایل‌های عمومی فقط حاوی شمارش هستند.

## خروجی محافظت‌شده با رمز عبور با libarchive باز شد · ۲۹ اکتبر ۲۰۲۶

یک آرشیو که با کد رمزگذاری خروجی (WinZip AES-256، فرمت قابل‌خواندن توسط 7-Zip و WinRAR) نوشته شده بود، با Windows `tar` (bsdtar 3.6.2, libarchive) باز شد. با رمز عبور صحیح، فایل استخراج‌شده با SHA-256 اصلی مطابقت داشت؛ رمز عبور اشتباه با پیام «Incorrect passphrase» (عبارت عبور نادرست) رد شد. خود برنامه‌های 7-Zip و WinRAR اجرا نشدند.

## آزمایش زنده تلگرام · ۲۷ تا ۲۹ اکتبر ۲۰۲۶

یک حساب واقعی تلگرام که از طریق استخر جفت API داخلی وارد شده بود، یک ابرگروه را از **۲۷ اکتبر ساعت ۲۱:۳۶ به وقت جهانی تا ۲۹ اکتبر ساعت ۰۵:۱۵ به وقت جهانی** ضبط کرد. گردآورنده در آن دوره ۱۲ بار راه‌اندازی شد.

| ثبت‌شده | شمارش |
| --- | --- |
| سوابق دفترچه، شامل ضربان‌ها و سوابق سرویس | 2,385 |
| پیام‌های جدید | 1,291 |
| حذف‌ها | 472 |
| از آن‌ها پس از آنکه TgWitness متن را ذخیره کرده بود، حذف شدند | 347 |
| ویرایش‌ها | 12 |
| پیام‌هایی که هنگام توقف از دست رفته‌اند، توسط بازپروژه (recheck) اضافه می‌شوند | 12 |
| پیوست‌های ذخیره‌شده | 17 |
| پیوست‌ها دانلود نشده‌اند (دانلود غیرفعال است، یا فایلی برای دانلود وجود ندارد) | 14 |
| Telegram FloodWait در حین بازبینی مجدد، هر بار به مدت ۳ ثانیه مکث می‌کند | 8 |

- امضاها و زنجیره هش تمام ۲٬۳۸۵ رکورد با کلید عمومی دفترچه تأیید می‌شوند.
- پس از راه‌اندازی مجدد، جمع‌آورنده از وضعیت به‌روزرسانی ذخیره‌شده (`pts`) از سر گرفته می‌شود و Telethon جبران می‌کند؛ سپس بازبینی دوباره پیام‌های هنوز مفقود را اضافه می‌کند.
- در هر FloodWait، گردآورنده به مدت زمان درخواست‌شده صبر کرد و سپس ادامه داد.
- حساب همچنان وارد شده باقی ماند و همان جلسه در ۲۹ اکتبر دوباره متصل شد.

این تست شامل موارد زیر نمی‌شود: چندین حساب به طور همزمان، نقش‌های مدیر، پروکسی‌ها، قطعی‌های طولانی‌تر از چند ساعت و [رویه کامل پذیرش زنده](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/LIVE_ACCEPTANCE.md). فایل‌های عمومی فقط حاوی این شمارش‌ها هستند: هیچ شناسه حساب یا چت، پیام یا اعتبارنامه‌ای.

ورودی‌های قدیمی‌تر در زیر، اجرای خود را توصیف می‌کنند؛ اکثر آن‌ها از کلاینت‌های آزمایشی مصنوعی استفاده کرده‌اند. آخرین نتایج خودکار در زیر آمده است.

## فهرست‌های عمومی MTProxy داخلی · ۲۹ اکتبر ۲۰۲۶

این سوابق تاریخی تست نسخهٔ اصلی با انتخاب دستی است. برای حالت‌های استخر خودکار و IP فعلی، به [تنظیمات اتصال](https://phishdestroy.github.io/TgWitness/fa/docs/reference/connection/#ip-modes) مراجعه کنید. شمارش‌ها و ویژگی‌های پشتیبانی‌نشدهٔ زیر مربوط به آن بازنگری آزمایش‌شده هستند.

افزودن یک اسنپ‌شات عمومی بسته‌بندی‌شده و تازه‌سازی صریح HTTPS از SoliSpirit/mtproto و zakky8/mtproto-proxy-pro. در این میزبان، دانلودکنندهٔ برنامه هر دو فید را با موفقیت در ۲۹ اکتبر ۲۰۲۶ ساعت ۱۲:۵۸ به وقت جهانی (UTC) دریافت کرد: **۱۱۸ نقطهٔ پایانی یکتا و سازگار** پس از فیلترسازی، حذف تکراری و محدودیت ۶۴ ورودی برای هر منبع. این کار، بازیابی لیست را تأیید می‌کند، نه اتصال یا تحویل پیام از طریق آن پروکسی‌ها. در طول این کار، هیچ حساب واقعی به پروکسی‌های فهرست‌شده متصل نبود. [راهنمای اپراتور و کاربر](https://github.com/phishdestroy/TgWitness/blob/main/docs/ru/PROXIES.md).

پاسخ‌های ناموفق/خالی/ناسازگار از منابع، ورودی‌ها و تاریخ‌های قبلی را حفظ می‌کنند. به‌روزرسانی‌ها مسیر انتخابی را تغییر نمی‌دهند. آدرس‌های عمومی اعتبارسنجی می‌شوند و IPهای حل‌شده در هنگام انتخاب پین می‌شوند؛ مسیرهای اپراتور/دستی جدا باقی می‌مانند. پروب اتصال اکنون در پنل قبل از ورود به حساب کاربری موجود است. پشتیبانی از TLS ee جعلی و انتخاب خودکار پروکسی هنوز فراهم نشده است. کاتالوگ اپراتور به‌طور کامل اشتراک‌ها را نادیده می‌گیرد.

- مجموعه کامل: **۳۶۶ مورد قبول، ۳ مورد رد**، ۲۸۷٫۹۴ ثانیه. هشدارهای وابستگی موجود و ردهای پلتفرمی باقی می‌مانند. آخرین پسرفت لیست عمومی/محلی‌سازی: **۳۶ مورد قبول**، شامل رد پورت‌های نامعتبر پروکسی دانلود؛ این با مجموعه کامل همپوشانی دارد.
- سازگاری مرورگر در حالت‌های انگلیسی/روسی، روشن/تیره در ابعاد ۳۹۰/۱۴۴۰ پیکسل: گزینه‌های یکپارچه، بدون درخواست خارجی هنگام باز کردن تنظیمات، تازه‌سازی صریح، حفظ مسیرها و کش در هنگام خطا، بررسی پیش از ورود، جداسازی فضای کاری با پاسخ دیرهنگام، جزئیات منبع و چیدمان/کنتراست. بدون خطای جاوا اسکریپت یا درخواست خارجی مرورگر.
- پوشش نهایی ترجمهٔ ایستا برای هر ۱۳ لوکیشن تأیید شد؛ متن جدید به زبان روسی ترجمه شده و در سایر موارد به‌طور ضمنی به انگلیسی بازگردانده شده است. راهنمای داخلی به‌روزشده در هر دو تم، بررسی‌های چیدمان و کنتراست را پشت سر گذاشت.
- بررسی‌های خام و انتشار با موفقیت انجام شد (۲۵۹ فایل عمومی، ۱٬۳۵۴ لینک محلی)؛ به‌روزرسانی شد YAML مربوط به Compose و CI تجزیه شد. Docker و CI از راه دور در اینجا اجرا نشدند.
- چرخ بازسازی‌شده نصب ایزوله، بارگذاری فهرست بسته‌ها و تأیید صحت خروجی امضا شده را پشت سر گذاشت. تمام ۶۹ منبع بسته با فضای کاری مطابقت داشتند؛ هش‌های منبع بررسی شدند.

رسیدها: `test-results/public-proxy-research/download-receipt.json`, `test-results/public-proxy-research/copy-receipt.json`, `test-results/public-proxies-full-suite.log`, `test-results/public-proxies-final-focused.log`, `test-results/public-proxies-browser/receipt.json` و `test-results/public-proxies-package.log`. اطلاعات مربوط به مرورگر/حساب کاربری/انتقالات ساختگی هستند؛ دو دانلود فید بالا درخواست‌های واقعی HTTPS هستند.

## معرفی امکانات اختیاری · ۲۹ اکتبر ۲۰۲۶

مقصد سابق ربات Proof اکنون **Extras** است: یک نمای کلی کوتاه به دنبال آن یک صفحهٔ تنظیمات جداگانه برای گزینهٔ انتخاب‌شده. فرم Witness سه مرحله دارد، با مدیریت اتصال، گزینه‌های شبکه و جزئیات استقرار که پنهان شده‌اند. GitHub صراحتاً برنامه‌ریزی شده و فرم اعتبارنامه‌ای ندارد. [نمای کلی روسی](https://github.com/phishdestroy/TgWitness/blob/main/docs/ru/EXTRAS.md).

- ۳۰ تست متمرکز برای مکان‌یابی، راه‌اندازی شاهد و بررسی‌های انتشار با موفقیت انجام شد.
- تأیید چیدمان و بررسی‌های کنتراست متن با پس‌زمینه یکدست در زبان‌های انگلیسی/روسی، حالت روشن/تیره، در ابعاد ۳۹۰/۱۴۴۰ پیکسل انجام شد: تمرکز صفحه‌کلید و کلید Enter، عدم وجود ارتباطات ضمنی هنگام انتخاب موارد اضافی، حفظ پیش‌نویس، دانلودهای پیکربندی/توکن سنجاق‌شده، پاک شدن توکن هنگام قفل شدن، و کارکرد لنگرهای راهنمای محلی. تست‌های چیدمان و کنتراست متن با پس‌زمینه یکدست با موفقیت انجام شد.
- پذیرش تغییر فضای کاری انجام شد، شامل پاسخ توکن با تأخیر که پس از تغییر دریافت می‌شود. پیمایش سریع، موارد اضافی را از طریق ربات، شرایط اثبات و گیت‌هاب پیدا می‌کند؛ بررسی‌های موجود ۳۲۰/۳۹۰/۱۴۴۰ پیکسل و روسی/RTL نیز با موفقیت انجام شدند.
- در اجرای پیکربندی هیچ خطای جاوااسکریپت یا درخواست خارجی مرورگر مشاهده نشد. این‌ها بررسی‌های مصنوعی رابط کاربری هستند، نه شواهد جدید انتشار زنده تلگرام یا ربات.
- بارگذاری نهایی زبان و پوشش واژگان برای هر ۱۳ بومی‌سازی با موفقیت انجام شد و پشتیبان‌های صریح انگلیسی خارج از زبان روسی حفظ گردید. راهنمای Proof توسعه‌یافته نیز در هر دو تم در رزولوشن‌های ۳۲۰/۷۶۸/۱۴۴۰ پیکسل، بررسی‌های چیدمان/کنتراست را با موفقیت پشت سر گذاشت.
- چرخ بازسازی‌شده نصب ایزوله و تأیید صدور امضا شده را پشت سر گذاشت. تمام ۶۷ منبع بسته‌بندی‌شده با فضای کاری مطابقت داشتند؛ آرشیو منبع شامل ۲۵۳ فایل عمومی است. بررسی منبع/لینک برای ۱٬۳۴۶ لینک مستندسازی محلی با موفقیت انجام شد.

رسیدها: `test-results/setup-browser/receipt.json`, `test-results/quick-navigation/receipt.json`, `test-results/extras-final.json`, `test-results/extras-package.log` و `test-results/extras-artifacts.json`. منابع اسکرین‌شات از فضاهای کاری مصنوعی استفاده می‌کنند.

## بازبینی راه‌اندازی بات و پروکسی ویسنس · ۲۹ اکتبر ۲۰۲۶

راه‌اندازی شاهد (اکنون در مسیر **اضافات → یک ربات در کانال شما**) یک شاهد مستقلاً مستقرشده را آماده می‌کند: کلید جمع‌آورنده سنجاق‌شده، دانلود توکن محدوده، کانال اختصاصی، سیاست انتشار، مسیر HTTP/SOCKS5 و API ربات سفارشی. توکن بات روی هاست شاهد باقی می‌ماند. `--check-config` جدید آن، پیکربندی و فایل‌ها را بدون باز کردن اتصال شبکه یا ایجاد کلید، اعتبارسنجی می‌کند. مسیرهای فایل JSON در کنار پیکربندی حل می‌شوند. تمام واریانت‌های شاهد Compose اکنون تنظیمات پروکسی HTTP و Bot API را فوروارد می‌کنند.

تنظیمات حساب از یک کاتالوگ عمومی MTProxy تحت مدیریت اپراتور، پیش‌نمایش لینک پروکسی تلگرام سفارشی و فیلدهای دستی موجود پشتیبانی می‌کند. پاسخ‌های کاتالوگ، اطلاعات محرمانه را حذف می‌کنند؛ انتخاب، مسیر را در گاوصندوق فضای کاری ذخیره می‌کند. کاتالوگ‌های ناقص یا با فرمت اشتباه، مسیرهای دستی را در دسترس باقی می‌گذارند. هیچ آدرس پروکسی پروژه یا سرویس میزبان شاهدی به طور پیش‌فرض ایجاد یا فعال نمی‌شود. یک مثال Caddy تنها زمانی که یک شاهد خارجی باید به یک گردآورنده دسترسی پیدا کند که پنل آن خصوصی باقی می‌ماند، نقطه پایانی head در محدوده را فاش می‌کند.

اعتبارسنجی:

- مجموعه کامل: **۳۴۸ مورد تأیید، ۳ مورد رد**، ۱۹۵٫۸۱ ثانیه. محدودیت‌های ویندوز مسئول ردها هستند؛ دو هشدار منسوخ‌سازی وابستگی موجود باقی می‌مانند.
- اجرای نهایی رگرسیون شاهد/پیکربندی/انتشار: **۱۱ مورد قبول، ۱ مورد رد شد**. این شامل کل مجموعه تست‌ها می‌شود. تست‌ها شامل حل مسیر، پیش‌پرواز آفلاین، امضا/انتشار از طریق یک فیکسچر واقعی API ربات HTTP لوپ‌بک، شکست تحویل ثبت‌شده، تأیید توکن کانال و حذف پروکسی-سکرِت هستند.
- پذیرش تنظیمات کرومیم در ابعاد ۳۹۰×۱۴۴۰ پیکسل (انگلیسی/روسی) با موفقیت انجام شد: دانلود پیکربندی و توکن پین‌شده، پاک شدن توکن هنگام قفل، انتخاب کاتالوگ، پیش‌نمایش لینک سفارشی، سپس ذخیره صریح، تنظیم چیدمان/کنتراست و عدم وجود خطاهای جاوااسکریپت یا درخواست‌های خارجی مرورگر. مشکل تنگ بودن سربرگ حساب کاربری روسی و لب‌پر شدن زبانه ورود برطرف شد.
- بررسی‌های منبع/لینک خام و پارس YAML برای کامپوز/جریان کار با موفقیت انجام شد.
- چرخ بازسازی‌شده از نصب ایزوله، بررسی‌های پنل/منابع ایستا و احراز هویت API و همچنین تأیید مستقل خروجی‌های مصنوعی ۳۲ رویدادی مستقیم و جریانی عبور کرد.

رسیدها: `test-results/setup-full-suite.log`, `setup-final-focused.log`, `setup-browser/receipt.json`, `setup-browser-final.log` و `setup-package.log`. این چک‌ها از حساب‌های مصنوعی/پراکسی‌ها و یک اتصال محلی به Bot API استفاده می‌کنند. آن‌ها ادعای انتشار یک ربات واقعی، سرور عمومی MTProxy فعال، اجرای CI از راه دور یا استقرار Docker را ندارند. تاریخچه مشاهدات واقعی تلگرام که در بالا نگهداری شده است، همچنان یک مدرک جداگانه باقی می‌ماند. [دستورالعمل‌های راه‌اندازی](https://github.com/phishdestroy/TgWitness/blob/main/docs/ru/WITNESS.md).

## بازبینی ارائه و مستندات · ۲۹ اکتبر ۲۰۲۶

صفحه محصول، صفحه ورود، فایل‌های README به زبان‌های انگلیسی و روسی و تصاویر ارائه اکنون از یک سبک بصری یکسان برخوردارند. اسکرین‌شات‌های عمومی از داده‌های دمو فرضی استفاده می‌کنند. این بازبینی همچنین توضیحات قدیمی مربوط به اعتبارسنجی زنده و بازیابی را که در بالا ذکر شده بود، اصلاح کرده است.

- محلی‌سازی متمرکز، تست‌های سایت و انتشار: **۳۳ تست گذرانده شد، ۱ تست نادیده گرفته شد**. تست نادیده گرفته شده نیازمند ایجاد لینک نمادین (symlink) است که در این میزبان در دسترس نیست.
- پذیرش عمومی پنل کرومیم انجام شد، شامل تمام فهرست‌های زبانی، چیدمان راست‌خوان، تم‌های روشن/تیره، کنتراست ثابت متن و جابجایی فضای کاری. بررسی ایجاد پروفایل اکنون پیش از بررسی فضای کاری انتخاب‌شده، منتظر پاسخ HTTP واقعی آن می‌ماند.
- صفحه‌های دسترسی انگلیسی/روسی در هر دو تم در اندازه‌های ۳۲۰، ۳۹۰، ۷۶۸، ۸۵۰ و ۱۴۴۰ پیکسل، بررسی‌های چیدمان و کنتراست را پشت سر گذاشتند؛ دکمه ارسال در نمای اولیه باقی می‌ماند.
- پذیرش سایت عمومی در پیکسل‌های ۳۲۰، ۳۹۰، ۷۶۸، ۱۰۲۴ و ۱۴۴۰، شامل پیام کنترل‌های تاریخچه، بزرگ‌نمایی اسکرین‌شات/فرار/بازگشت فوکوس، تب‌های صفحه‌کلید، رد کلیپ‌بورد، زیرمسیرهای پروژه، کاهش حرکت و راه‌حل پشتیبان بدون جاوااسکریپت. هیچ درخواست دارایی ناموفق، درخواست خارجی یا خطای جاوااسکریپت مشاهده نشد.
- چرخ بازسازی‌شده یک بررسی نصب ایزوله را پشت سر گذاشت: منابع پنل و لوکال‌ها بارگذاری شدند، دسترسی به API مستلزم احراز هویت است، و خروجی‌های مستقیم/جریانی به‌طور مستقل تمام ۳۲ رویداد مصنوعی را تأیید کردند. بررسی‌های خام و منابع عمومی/لینک‌ها نیز با موفقیت انجام شدند.

رسیدهای محلی: `test-results/design-tests.log`, `design-panel-final.log`, `design-review-final.log`, `design-site.log`, و `design-package/install-receipt.json`. مجموعه کامل بک‌اند برای این تغییر در ارائه/مستندسازی مجدداً اجرا نشد؛ نتیجه قبلی آن در حسابرسی پیش از انتشار باقی می‌ماند.

## نسخهٔ ۰.۶.۱

نسخه ۰.۶.۱ ارائه پنل، لانچرها، بسته‌بندی و مستندات را تغییر می‌دهد؛ کد جمع‌آوری، ذخیره‌سازی، امضا و خروجی بدون تغییر باقی مانده است. روی ویندوز ۱۱ / پایتون ۳.۱۲.۱۰ با محیط اجرایی سنجاق‌شده:

- کل مجموعه با عبور از **۱۳۷ تست** و با ۲**بار پرش** و هشدار موجود Starlette، موفق شد. تست‌های جدید نحوهٔ مدیریت کلید Ctrl+C در لانچر (که به سرور ۳۰ ثانیه برای توقف منظم فرصت می‌دهد) و خطاهای قابل اقدام در مراحل راه‌اندازی را پوشش می‌دهند.
- کرومیم (شِل بدون سر 156) تمام **45 سناریوی عمومی** و **35 تمام ۴۵ سناریوی عمومی و ۳۵ سناریوی کلیدی حساب-واردکردن/QR/احراز هویت**، از جمله بررسی کنتراست متن یکپارچه، عدم سرریز افقی در ۳۲۰–۱۴۴۰ پیکسل و قابل مشاهده بودن فیلدهای ورود اولیه در ۳۲۰/۳۹۰ پیکسل، با موفقیت پشت سر گذاشته شد. هیچ خطای جاوااسکریپت صفحه یا درخواست خارجی مشاهده نشد.
- `python start.py --setup-only` بسته را به‌عنوان نسخه 0.6.1 دوباره نصب کرد و `python start.py --check` آماده بودن را گزارش داد. یک سرور واقعی `python -m tgwitness --demo` پنل، شیوه‌نامهٔ سبک، اسکریپت، لوگو، راهنما و نسخهٔ `/api/status` 0.6.1 را بازگرداند؛ نسخهٔ حذف‌شدهٔ `workspace.css` کد 404 را بازگرداند.
- `Start.cmd` یک نصب پایتون خارج از PATH را پیدا کرد. با عدم وجود پایتون، پیشنهاد نصب را نمایش داد؛ دستورالعمل‌های راهنمای چاپی را رد کرد و با خروجی ۱ خارج شد. مرحله دانلود از python.org نصب‌کننده 3.12.10 را دریافت کرد و بررسی Authenticode بنیاد نرم‌افزار پایتون را گذراند؛ خود نصب‌کننده روی این میزبان اجرا نشد.
- `start.sh` بدون هیچ‌گونه خروجی Python، سرنخ نصب را چاپ کرد و خروجی داد 1. `scripts\Docker.cmd` و `scripts/docker-start.sh` در برابر فایل‌های اجرایی جعلی `docker` آزمایش شدند: توالی فراخوانی صحیح، آدرس پنل و خروجی توکن، و پس از یک خطا هیچ پیام موفقیتی وجود نداشت.
- `python tools/build_portable.py` پس از تأیید چک‌سام runtime قابل جاسازی پین‌شده، یک بسته ویندوزی ۱۸.۸ مگابایتی ساخت. پس از استخراج به مسیری با فاصله‌ترکیبی و با شروع فقط با دایرکتوری‌های `C:\Windows` در PATH، پایتون تعبیه‌شده‌ی آن، `TgWitness-Check.cmd` را فراخوانی کرد، دمو (۳۲ رویداد) و یک فضای کاری زنده را ارائه داد، و کرومیم، دفترچه یادداشت و کشوی جزئیات را بدون خطای جاوااسکریپت رندر کرد. داده‌ها در پوشه‌ی `data` بسته‌ی نرم‌افزاری نوشته شدند.
- `python tools/build_preview.py` یک آرشیو سورس ۱۱۰ فایلی تولید کرد. یک اجرای آزمایشی از `git add` همان ۱۱۰ فایل را بدون هیچ فایل session، key، database، token، log یا export ، بدون هیچ مسیر مطلق محلی و بدون هیچ رشتهٔ شبیه به رمز عبور لیست کرد.

در این اجرای خاص مربوط به بسته‌بندی ۲۷ اکتبر، موارد زیر انجام نشده است: نصب خودکار پایتون، بررسی‌های Docker build/Compose، اجراهای لینوکس/macOS یا یک تمرین حساب کاربری زنده جدید. شواهد واقعی تلگرام در بالا و در بررسی‌های حساب کاربری قبلی در پایین ثبت شده است. صرفاً تعاریف CI به اجرای پلتفرم منجر نمی‌شود.

## نسخهٔ ۰.۶.۰

آخرین مجموعه کامل runtime پین‌شده روی ویندوز ۱۱ / پایتون ۳.۱۲.۱۰، **۱۳۵ تست** را با ۱**مورد رد (skip**) در ۲۶.۵۳ ثانیه و با هشدار موجود Starlette پشت سر گذاشت. این رد شدن به مجوزهای POSIX نیاز دارد. پس از افزودن رندرکننده QR به بررسی‌های آمادگی و اندازه‌گیری‌های فرآیند، ۸ بررسی آمادگی/فضای کاری مرتبط نیز با موفقیت passed شدند.

پوشش جدید شامل اسکیماهای تله‌تون ۷/۸، اسکیماهای پایروگرام ۲/۳، JSON کامل کلیدها و JSON صرفاً شامل متادیتا، فایل‌های حساب کاربری تطبیق‌یافته/متضاد، رمزهای عبور TData، دستکاری چک‌سام و مسیرهای ناامن، تبدیل آفلاین/احراز هویت‌شده در حافظه، بررسی‌های آنلاین شناسه حساب کاربری، موفقیت QR/2FA/انقضا، لغو منقضی‌شده، و جداسازی حساب کاربری. فیکسچرهای TData برای رمزگذاری از یک پیاده‌سازی جداگانه AES-IGE استفاده می‌کنند.

کرومیم **۴۵ سناریوی عمومی** و **۳۵ سناریوی مربوط به وارد کردن حساب/QR/کلید احراز هویت را** با موفقیت پشت سر گذاشت، بدون اینکه هیچ خطای جاوااسکریپت صفحه یا درخواست خارجی مشاهده شود. بررسی‌های جدید مرورگر همگی چهار فرمت ورودی را با هم، TData محافظت‌شده، متادیتای API، رندرینگ QR، انقضا/تکرار، احراز هویت دو مرحله‌ای (2FA)، رد حساب کاربری اشتباه، لغو قفل/فضای کاری، چیدمان واکنش‌گرا، و پاسخ‌های تبدیل دیرهنگام پس از انتخاب یک فایل جدیدتر را پوشش می‌دهند.

هر دو مجموعه مرورگر پس از تغییرات مربوط به ورود حساب کاربری، مجدداً تأیید شدند. راه‌اندازی زنده، فرم حساب کاربری را باز می‌کند؛ حالت دمو، دفترچه نمونه خود را باز می‌کند. صفحه حساب کاربری دمو، دستورالعمل‌های راه‌اندازی زنده را نمایش می‌دهد و ورودی‌های اطلاعات هویتی را پنهان می‌کند. بررسی‌های متمرکز در پیکسل‌های ۳۲۰، ۳۹۰ و ۱۴۴۰ تأیید کردند که فیلد عددی و دکمه اصلی بدون نیاز به اسکرول جای می‌گیرند، فیلدهای API در ابتدا جمع شده‌اند و کنتراست متن قابل خواندن باقی می‌ماند. کنترل‌های ضبط و تأیید پس از باز کردن بخش‌های جدید قابل گسترش خود، همچنان پوشیده باقی می‌مانند.

جریان مستقیم کلید احراز هویت (Auth Key) با اعتبارنامه‌های ساختگی از طریق انتهای‌های واقعی وارد کردن و مجوزدهی آزمایش شد. بررسی‌ها شامل کلیدهای ناقص، عدم وجود DC، شناسه کاربری نامشخص، عدم تطابق هویت حساب، اعتبارنامه‌های ذخیره شده API، مشاهده پیشرفت درخواست، پاکسازی مخفی، و پاسخ‌های دیرهنگام پس از ویرایش‌ها یا تغییرات متد می‌شود. هر چهار روش ورود در پیکسل‌های ۳۲۰، ۳۹۰ و ۱۴۴۰ بررسی شدند. انتخابگر فایل پیش از راهنمای قالب قرار دارد و دکمه «اتصال» (Connect) با تنظیمات API جمع‌شده، در نمای اولیه ۸۴۴ پیکسلی جا می‌گیرد. در این اجرای پذیرش رابط کاربری، هیچ‌گونه تأییدیه کلید احراز هویت واقعی انجام نشد.

تازه شدن پنل با هر دو مجموعه مرورگر مجدداً بررسی شد: هیچ خطای جاوااسکریپت صفحه یا درخواست خارجی مشاهده نشد. مجموعه حساب کاربری اکنون شامل چسباندن یک جفت شناسه/هش API، رد کردن جفت‌های نامعتبر یا چندگانه بدون جایگزینی فیلدها، ارائه راهنمایی صرفاً برای متادیتا، و نادیده گرفتن پاسخ‌های وارداتی قدیمی پس از تغییر روش ورود یا ویرایش دستی اعتبارنامه‌ها است. شش بررسی متمرکز اضافی برای راهنمای راه‌اندازی، شروع/وقفه صریح، بازیابی جستجو خالی، و طرح‌بندی نهایی اتصال/راهنمای محلی و کنتراست متن مناسب در پیکسل‌های ۳۲۰، ۳۹۰ و ۱۴۴۰ با موفقیت انجام شد. به‌روزرسانی ورود مستقیم یک عملیات واحد درخواست شماره تلفن/کد را اضافه می‌کند و از جفت API ذخیره شده فضای کاری فعلی برای ورود با تلفن، QR و جلسه استفاده مجدد می‌کند. مجموعه کامل پایتون فوق شامل تست‌های جدید پایداری، رد اعتبارنامه‌های جزئی و جداسازی فضای کاری است. بررسی‌های مرورگر شامل ورود مستقیم با شماره تلفن، استفاده مجدد از اعتبارنامه ذخیره شده، مسیریابی تنها بر اساس متادیتا، تأیید مجوز فایل با یک دکمه و رد حساب‌های تکراری می‌شود. فرم‌های ساده‌شده پنل-توکن و تلفن نیز بدون پیمایش اولیه در اندازه‌های ۳۲۰، ۳۹۰ و ۱۴۴۰ پیکسل بررسی شدند. یک بررسی سازگاری تأیید کرد که فرم تلفن مستقیم می‌تواند از انتهای پیکربندی/کد قبلی استفاده کند، در حالی که یک فرآیند قدیمی‌تر هنوز در حال اجرا است.

یک حساب کاربری که توسط کاربر ارائه شده بود، به طور جداگانه و خارج از ساختارهای تست عمومی بررسی شد. ورودی‌های Telethon، Pyrogram و TData آن به یک مجوز واحد منتهی شدند؛ فایل JSON همراه، اعتبارنامه‌های API را فراهم کرد. هر چهار فایل از طریق پنل 0.6.0 بارگذاری شدند و تلگرام شناسه عددی حساب مورد انتظار را تأیید کرد. فایل‌های منبع بدون تغییر باقی ماندند. هیچ منبعی انتخاب نشد و حالت مشاهده غیرفعال باقی ماند. این یک نمونه از قابلیت وارد کردن/ورود است، نه جمع‌آوری زنده، بازیابی یا ظرفیت.

تلگرام همچنین یک توکن QR واقعی صادر کرد که بدون اسکن لغو شد. روندهای کامل تأیید QR و احراز هویت دو مرحله‌ای (2FA) با کلاینت‌های مصنوعی اجرا شدند؛ تأیید موبایلی در مقابل یک اپلیکیشن واقعی تلگرام همچنان یک مرحله پذیرش جداگانه باقی می‌ماند. هیچ شناسه حساب واقعی، رمز عبور یا اسکرین‌شاتی در فایل‌های عمومی گنجانده نشده است.

ارتقای لانچر تکمیل شد؛ گزارش نسخه 0.6.0 شامل سورس، متادیتای نصب‌شده و نشانگر آمادگی، با qrcode 8.2 و یک `pip check` موفق. چرخ نصب‌شده به پنل و راهنما خدمت کرد، درخواست‌های API بدون احراز هویت را رد کرد و به‌طور مستقل خروجی‌های مصنوعی مستقیم و استریم‌شده ۳۲-رویدادی را تأیید کرد. راهنمای آفلاین به‌روزرسانی‌شده در پیکسل‌های ۳۲۰، ۳۹۰ و ۱۴۴۰ بررسی شد. اسکرین‌شات‌های عمومی همچنان مصنوعی هستند.

نسخهٔ منبع حاوی ۱۰۷ فایل مجاز است. لینک‌های مستندات محلی قابل حل هستند. اجرای Docker/Caddy، انتشار CI/پکیج از راه دور، محیط اجرای ARM64، جمع‌آوری مستمر، و ماتریس کامل پذیرش تلگرام زنده در اینجا بدون قید باقی می‌مانند.

## نسخهٔ ۰.۵.۱

در ویندوز ۱۱ / پایتون ۳.۱۲.۱۰، کل مجموعه محیط پروژه با موفقیت اجرا شد: **۹۴ مورد موفق، ۲ مورد رد شده**، در ۳۱.۲۱ ثانیه، با هشدار موجود Starlette. موارد نادیده گرفته شده به مجوزهای POSIX و ایجاد لینک متقارن (symlink) نیاز دارند که در این میزبان در دسترس نیستند. اسکریپت تست دانلود HTTP یک تشخیص مربوط به نخ درخواست را چاپ کرد؛ تمام اعتبارسنجی‌ها با موفقیت انجام شدند. این اجرا، عدم وجود مشکلات حمل‌ونقل میزبان را تضمین نمی‌کند.

تمرین‌های پوشش رگرسیون جدید، تغییرات StringSession، کد و حساب 2FA، جستجو در هویت لغو‌شده، لغو ورود در حال انتظار، و به‌روزرسانی‌ها از طریق دستگیرکننده‌های ثبت‌شده روی کلاینت‌های فعال، ردشده، جایگزین‌شده و پروب را رد می‌کنند. تنها گردآورنده فعال در رویدادها مشارکت می‌کند؛ اعتبارنامه‌های ذخیره شده و تاریخچه امضا شده دست‌نخورده باقی می‌مانند. بررسی‌های جدید دیگر شامل جستجوی یونیکد پس از بازگشایی یک پایگاه داده، گنجاندن مرزهای سیاست نظارت در Coverage، و استثناهای بسته‌بندی منابع عمومی هستند.

پروژه واقعی `pythonw.exe` یک پنل ترکیبی جداگانه را راه‌اندازی کرد، کد وضعیت HTTP 200 را بازگرداند و تشخیص‌های راه‌اندازی را در `logs/server.log` حفظ کرد. لاگ حاوی توکن پنل تولید شده یا سوابق دسترسی HTTP نبود. این تست تنها فرآیند ترکیبی خود را متوقف کرد. هیچ وظیفه‌ای در برنامه‌ریز وظایف (Task Scheduler) ثبت نشد؛ ورود/خروج، حالت خواب و بازیابی سرویس همچنان شرایط مجزایی باقی می‌مانند.

پذیرش کرومیم **۴۵ سناریو را** با موفقیت پشت سر گذاشت، بدون هیچ خطای جاوااسکریپت صفحه و بدون مشاهده هیچ‌گونه درخواست خارجی. بررسی‌های جدید تاریخ‌ها و زمان‌های خط زمانی ۶۰۱/۷۶۸/۸۵۰ پیکسلی، پیش‌نویس‌های پیوست در طول به‌روزرسانی وضعیت، ویرایش‌های جدیدتر انجام‌شده هنگام ذخیره، نتایج تأیید حذف‌شده هنگام تعویض حساب، پاسخ‌های تأخیر‌دار تأیید پس از دور شدن و بازگشت به صفحه، و مرزهای واضح تأیید هنگام دریافت رویدادهای جدید را پوشش می‌دهند. فاصله بین آیکون/متن جستجو نیز اصلاح شد و مجموعه مرورگرها مجدداً اجرا گردید.

اجرای مرورگر از محیط اجرای پین‌شده در `.venv` و Playwright 1.62.0/Chromium موجودِ ارائه‌شده توسط سیستم، که پس از محیط پروژه در مسیر واردکردن (import path) الحاق شده بود، استفاده کرد. نصب یک وابستگی توسعه اختیاری در حین دانلود کند Playwright متوقف شد؛ هیچ نسخه جدیدی از ابزار مرورگر واجد شرایط نشد. یک `python start.py --setup-only` معمولی ارتقای برنامه را تکمیل کرد. سورس، متادیتای نصب‌شده و گزارش نشانگر لانچر 0.5.1 را گزارش می‌دهند؛ `pip check` با موفقیت انجام شد. بررسی‌های آمادگی در یک مسیر جدید و استفاده نشده با موفقیت انجام شد و هشدار مورد انتظار کلید گاوصندوق محلی حفظ شد.

چرخ نسخه 0.5.1 به طور جداگانه نصب و تست دودی شد: تمام دارایی‌های پنل/راهنما ارائه شدند، دسترسی به API بدون احراز هویت رد شد، و هر دو فایل ZIP مدرک ۳۲-رویدادی مستقیم و استریم‌شده از تأیید مستقل سربلند بیرون آمدند. فایل‌های اجرایی موجود در بسته نصب‌شده با نسخه اصلی مقایسه شدند. آرشیو عمومی سورس از یک فهرست صریح مجاز برای نوع فایل استفاده می‌کند و فایل‌های سورس پیوندی را رد می‌کند؛ مواد زمان اجرا که در دایرکتوری‌های سورس قرار داده شده‌اند، توسط تست‌های رگرسیون حذف می‌شوند.

در طول اجرای اصلاح کد، مجموعه فایل‌های انتخاب‌شده از منبع عمومی و کاندیداهای Git شامل ۸۶ فایل بود، بدون احتساب دایرکتوری‌های داده در زمان اجرا. اسکن برای یافتن الگوهای قابل تشخیص کلید خصوصی، توکن گیت‌هاب، توکن ربات تلگرام و StringSession هیچ تطابقی پیدا نکرد. این یک بررسی الگوی محدود است، نه یک حسابرسی جامع اسرار. بررسی‌های قاعده نادیده گرفتن، دوازده مورد از آثار رایج حساب کاربری/داده‌ها/صادرات را پوشش می‌دهند. YAML گردش کار/مسئله/Compose و اسکریپت وظیفه ویندوز با موفقیت پارس شدند. لینک‌های مستندات محلی حل شدند.

به تمام هفت یافته حاصل از بازبینی ۲۷ اکتبر پرداخته شده است. اجرای گردش کار گیت‌هاب، محیط اجرایی لینوکس/مک‌اواس/داکر، تلگرام واقعی، قابلیت تعامل با پروکسی خارجی/TSA، و تأیید صلاحیت بار کاری پایدار خارج از این اجرای محلی باقی می‌مانند. هیچ‌گونه انتشار مخزن، ثبت سرویس یا جمع‌آوری حساب‌های واقعی انجام نشده است.

### به‌روزرسانی مستندات انگلیسی

فایل README، مرجع حساب/جلسه، گردش کار جمع‌آوری، و راهنمای همراه اکنون ورودی‌های پشتیبانی‌شده، رفتار فضای کاری، سیاست‌های رویداد، و فرمت‌های خروجی را به زبان انگلیسی توصیف می‌کنند. سه اسکرین‌شات عمومی با استفاده از داده‌های مصنوعی به‌روزرسانی شدند. در آن زمان، مجموعه متن‌باز شامل ۸۸ فایل، از جمله دو راهنمای جدید بود. تمام ۱۳۱ لینک محلی در ۲۳ سند مارک‌داون قابل حل هستند.

پس از ویرایش‌های رابط کاربری و راهنما، Chromium بار دیگر از تمام ۴۵ سناریو با موفقیت عبور کرد و هیچ خطای جاوااسکریپت صفحه‌ای یا درخواست خارجی مشاهده نشد. مجموعه کامل پایتون برای این به‌روزرسانی مستندات و ارائه مجدداً اجرا نشد؛ نتیجه ۹۴-گذر موفق فوق به اجرای قبلی اصلاح کد مربوط می‌شود.

چرخ بازسازی‌شده در یک هدف جدید و ایزوله نصب شد. پنل و دارایی‌های راهنمای آن با موفقیت عمل کردند، دسترسی به API بدون احراز هویت رد شد و هم خروجی‌های مستقیم و هم خروجی‌های جریانی از تأیید مستقل ۳۲ رویداد مصنوعی عبور کردند.

### به‌روزرسانی نصب و راه‌اندازی

بررسی‌های نصب، بسته‌بندی و آمادگی متمرکز **۱۴ آزمون** را با یک مورد رد شدن به دلیل عدم امکان ایجاد symlink (لینک نمادین) ناموجود پشت سر گذاشتند. بررسی‌های wrapper بومی مسیرهایی با فاصله، فوروارد آرگومان، حالت‌های راه‌اندازی/دمو و انتقال خروجی غیرصفر را پوشش می‌دهند. بررسی‌های Git Bash، ابزار کمکی شل Docker را با یک دیمون شبیه‌سازی‌شده اجرا می‌کنند، که شامل Docker غایب، Compose غایب، انتظار ناموفق برای وضعیت سلامت، و راه‌اندازی موفقیت‌آمیز از طریق پورت جایگزین می‌شود. این بررسی‌های شبیه‌سازی‌شده، سازگاری زمان اجرای Docker را تضمین نمی‌کنند.

یک نسخه کامل متن‌باز در یک دایرکتوری جدید ویندوز که مسیر آن شامل فاصله‌بُر بود، نصب شد. `scripts\Setup.cmd` یک محیط تازه ایجاد کرد و runtime سنجاق‌شده را نصب کرد؛ `Start.cmd --check --json` بدون ایجاد دایرکتوری داده هدف خود، آماده گزارش داد. `pip check` موفق شد. چرخ بازسازی‌شده نیز در بررسی بسته نصب‌شده، از جمله خروجی‌های مستقیم و استریم‌شده ۳۲ رویدادی، موفق بود.

سینتکس شل و پنج فایل جریان کاری/Compose YAML پردازش شدند. پیکربندی‌های منبع و تصویر Compose در مورد تنظیمات ذخیره‌سازی و زمان اجرا با هم مطابقت دارند. در این مرحله، تمام ۱۳۹ لینک محلی در ۲۳ سند Markdown حل شدند. مجموعه منابع عمومی شامل ۹۹ فایل است.

تعاریف CI اکنون از راه‌اندازی بومی جدید در ویندوز/لینوکس/macOS، وضعیت Compose، کنترل دسترسی/پایداری در سراسر بازآفرینی کانتینر، و پیکربندی Caddy استفاده می‌کنند. گردش کار انتشار بر اساس این بررسی‌هاست و یک بررسی دود (smoke check) شبیه‌سازی‌شده ARM64 را نیز اضافه می‌کند. Docker در این میزبان در دسترس نیست: اجرای واقعی Compose/Caddy، صدور گواهی‌نامه، اجرای ARM64 و انتشار جریان کاری/پکیج از راه دور به صورت محلی تأیید نشده‌اند. کد اپلیکیشن/رابط کاربری توسط این به‌روزرسانی تغییر نکرده است؛ نتایج کامل قبلی پایتون و مرورگر مجدداً اجرا نشدند.

## نسخهٔ ۰.۵.۰

مجموعه کامل runtime سنجاق‌شده با موفقیت عبور کرد: **۸۱ مورد قبول، ۱ مورد رد**، در ۲۲.۰۰ ثانیه، با هشدار موجود Starlette. بررسی مجوزهای POSIX در ویندوز نادیده گرفته می‌شود. تست‌های هندلر جدید، پیام‌ها، ویرایش‌ها، حذف‌های محدوده/نامحدود، واکنش‌ها، به‌روزرسانی‌های شرکت‌کنندگان و پیام‌های سرویس عضویت را از طریق سیاست‌های مختلف ارسال می‌کنند. دسته‌بندی‌های غیرفعال هیچ مشاهده زنده متناظری تولید نمی‌کنند؛ تشخیص پوشش و اسنپ‌شات‌های صریح همچنان در دسترس هستند. تست‌ها سیاست‌های پایدار، جداسازی فضای کاری، سوابق ممیزی امضا‌شده قبل/بعد، رفتار سیاست بدون تغییر، اعتبارسنجی سخت‌گیرانه و گنجانده شدن در رسید فرآیند بعدی را تأیید می‌کنند.

تست‌های ورودی دمو تأیید می‌کنند که قابلیت آن با توکن پنل پیکربندی‌شده متفاوت است، نمی‌تواند یک فضای کاری زنده را مجاز کند، نمی‌تواند تنظیمات جمع‌آوری را تغییر دهد، و برای درخواست‌های راه دور، فورواردشده، بین‌منشأ یا میزبان نامعتبر صادر یا پذیرفته نمی‌شود. باز کردن یک دمو ذخیره‌شده بدون پرچم دمو صریح، ورود خودکار را فعال نمی‌کند.

آزمون پذیرش کرومیم با موفقیت **۳۹ سناریو را** پشت سر گذاشت، از جمله ورود به دمو محلی بدون وارد کردن توکن، پیش‌تنظیمات نظارت، انتقال از انتخاب منبع به سیاست، استقلال هر حساب کاربری و بررسی‌های چیدمان دسکتاپ/۳۲۰/۳۹۰ پیکسلی و کنتراست متن. هیچ خطای جاوااسکریپت صفحه‌ای وجود نداشت. درخواست‌های تزریق‌شده توسط AdGuard میزبان در رسید باقی می‌مانند. فیکسچر HTTP دانلود پس از بسته شدن اتصال توسط کلاینت، یک بازنشانی اتصال را ثبت کرد؛ آزمون‌های صحت همچنان موفق بودند. این نتیجه یک سرویس زنده نیست.

راه‌انداز معمولی محیط ایزوله را به نسخه 0.5.0 ارتقا داد؛ نسخه‌های سورس و نصب‌شده با هم مطابقت دارند و بررسی pip با موفقیت انجام شد. بررسی‌های موجود رمزگذاری گاوصندوق مخفی، رد کلید اشتباه/مفقود، و دستکاری امضا/رسانه در کل مجموعه با موفقیت انجام شد. ادعایی برای رمزگذاری جدید محتوای پیام یا پیوست‌ها توسط برنامه وجود ندارد.

دموی محلی مجدداً راه‌اندازی می‌شود تا رابط کاربری به‌روز شده در دسترس قرار گیرد. رکوردهای مصنوعی موجود حفظ می‌شوند؛ متوقف کردن فرآیند پس‌زمینه دمو قدیمی، در راه‌اندازی بعدی یک مرز آفلاین ایجاد می‌کند. برای این بررسی‌ها از هیچ جلسه واقعی تلگرام استفاده نمی‌شود.

پنل در حال اجرا در localhost:8787 نسخه 0.5.0، دسترسی خودکار به دموی نسخه، پنج کنترل نظارت و ۳۳ رویداد مجله‌ای مصنوعی نگهداری‌شده را نمایش داد. پانل جداگانه نصب‌شده نسخه 0.5.0، تمام دارایی‌های پنل/راهنما را ارائه داد، دسترسی API بدون احراز هویت را رد کرد و یک فایل ZIP تأییدشده حاوی 32 رویداد را هم مستقیماً و هم از طریق ابزار کمکی دانلود جریانی تولید کرد. نسخه‌های بسته زمان اجرا همچنان همان‌طور که برای نسخه 0.4 ثبت شده بودند، ثابت باقی می‌مانند.

## نسخهٔ ۰.۴.۰

مجموعه کامل runtime سنجاق‌شده با موفقیت پشت سر گذاشته شد: **۷۸ مورد قبول، ۱ مورد رد**، در ۱۹.۷۷ ثانیه. بررسی ردشده به مجوزهای POSIX نیاز دارد؛ هشدار منسوخ‌سازی TestClient اصلی Starlette همچنان پابرجاست. تست‌های جدید دانلود استریم‌شده/مسیر‌یابی فضای کاری، هدرهای احراز هویت، امتناع از بازنویسی، هدایت‌ها، پاسخ‌های ناقص، محدودیت‌های اندازه تبلیغ‌شده/واقعی، خواندن‌های محدود، پاکسازی، فایل‌سیستم‌های بدون پیوند سخت، خطاهای آمادگی و حالت‌های راه‌انداز را پوشش می‌دهند که نباید بسته‌ها را نصب کنند. تست‌های خروجی، فایل‌های موقت محلی فضای کاری و پاکسازی انتخابی فایل‌های یتیم را تأیید می‌کنند.

مقبولیت کرومیم با موفقیت تمام ۳۶ سناریوی فهرست‌شده را بدون هیچ خطای جاوااسکریپت صفحه پشت سر گذاشت. این ابزار ورود آزمایشی با تلفن/کد/احراز هویت دو مرحله‌ای، تبدیل جلسات، دو فضای کاری و مسیرها/وضعیت‌های جداگانه، مشاهدات، امضاها، نقاط کنترل و درخواست‌های مهر زمانی را اجرا می‌کند، به‌علاوه:

- چیدمان‌های دسکتاپ و ۳۲۰/۳۹۰ پیکسلی، بدون سرریز افقی، ناوبری قابل مشاهده، و اولین فیلد ورود در ۸۴۴ پیکسل ابتدایی ناحیه دید.
- کنتراست متن با پس‌زمینهٔ یکدست در آستانه‌های WCAG AA. کنترل‌های غیرفعال، پوشیدگی و پس‌زمینه‌های تصویر/گریدینتی مستثنی شده‌اند؛ این یک ممیزی کامل WCAG نیست.
- یک پاسخ واقعی خروجی محلی که از طریق یک انتخابگر/قابل‌نوشتن فایل OS شبیه‌سازی‌شده نوشته شده است، به دنبال آن تأیید مستقل ZIP؛ لغو هیچ درخواست خروجی ارسال نمی‌کند.
- نویسش شکست‌خورده مقصد را لغو می‌کند؛ پشتیبان ۱۲۸ مگابایتی پاسخ اعلان‌شده‌ای را که بیش از حد بزرگ است بدون تخصیص بار مفید متناسب رد می‌کند.
- راهنمای محلی انگلیسی برای دسکتاپ و هر دو عرض باریک.

کادر محاوره‌ای ذخیرهٔ OS و نوشتن‌های واقعی چندگیگابایتی مرورگر خودکارسازی یا تأیید نشده‌اند. تست‌های دانلود پایتون از تکه‌های محدود و تجهیزات لوپ‌بک استفاده می‌کنند. پذیرش کامل استقرار با تلگرام واقعی همچنان جداگانه باقی می‌ماند.

نصب‌کنندهٔ عادی، `.venv` را به نسخهٔ 0.4.0 ارتقا داد. سورس و متادیتای نصب‌شده با هم مطابقت دارند؛ `pip check` با موفقیت عبور کرد. `python start.py --check --json` در یک مسیر مصنوعی جدید گزارش داد که آماده است بدون ایجاد دایرکتوری داده. هشدار ذخیره‌سازی کلید محلی آن به درستی باقی می‌ماند: ژورنال‌ها/رسانه‌ها توسط برنامه رمزگذاری نمی‌شوند.

چرخ نسخه 0.4.0 ساخته شده و در یک دایرکتوری جداگانه نصب شد. تمام ۲۳ فایل برنامه نرم‌افزار، با منبع، بایت به بایت مطابقت دارند. بسته نصب‌شده، پنل و راهنما/منابع انگلیسی را ارائه داد، دسترسی API بدون احراز هویت را رد کرد و یک فایل فشرده سینتتیک ۳۲-رویدادی را صادر کرد که از اعتبارسنجی عبور کرد. فرمان دانلود جریانی آن نیز یک فایل فشرده را که به طور مستقل تأیید شده بود از برنامه نصب‌شده در حال اجرا دریافت کرد.

مستندات عمومی و راهنمای محلی به زبان انگلیسی هستند؛ لینک‌های مستندات محلی resolve. پاورشل قالب وظیفه ویندوز را تجزیه و پایتون فایل plist مک‌اواس را تجزیه کرد. این‌ها بررسی‌های نحوی هستند، نه اجرای سرویس. هیچ وظیفه/سرویسی ثبت نشد. پیکربندی CI اکنون شامل بررسی‌های آمادگی است اما CI از راه دور در اینجا اجرا نشده است.

اجرای نسخه ۰.۴ مرورگر بار دیگر تزریق AdGuard در هاست و خطای OSError 10022 مربوط به پاک‌سازی ساکت asyncio در ویندوز را مشاهده کرد. آزمون‌های صحت مرورگر با موفقیت passed شدند؛ این مشاهدات محیطی به جای اینکه به‌عنوان رفتار ثابت برنامه در نظر گرفته شوند، حفظ می‌شوند. تلاش‌های اولیه برای sandbox با OpenSSL/browser/pip ناموفق بود؛ اجراهای موفقیت‌آمیز واجد شرایط از اجرای تأییدشده خارج از sandbox استفاده کردند.

## نسخهٔ ۰.۳.۱ بر رفع اشکالات آمادگی متمرکز است

بررسی‌های لانچر، شواهد/ذخیره‌سازی و API تحت تأثیر قرار گرفته، با موفقیت انجام شد: **۳۱ مورد با موفقیت، ۱ مورد رد شد**، یک هشدار از Starlette بالادست. بررسی رد شده، مجوزهای دایرکتوری POSIX را تأیید می‌کند و نمی‌تواند این مجوزها را روی این میزبان ویندوز اعمال کند. آزمایش پایتون قدیمی، مرز نسخه/واردات را شبیه‌سازی می‌کند؛ هیچ تفسیرگر پایتون ۳.۱۰ نصب یا واجد شرایط نبود. مجموعه تست نسخه ۰.۳ که قبلاً با موفقیت اجرا شده بود، در زیر ثبت شده است؛ کل مجموعه و سناریوهای مرورگر برای این تغییرات متمرکز مجدداً اجرا نشدند.

راه‌انداز عادی، محیط محلی را به نسخه 0.3.1 ارتقا داد؛ سورس و متادیتای نصب‌شده با هم مطابقت دارند و بررسی pip نیز با موفقیت انجام شد. یک چرخ (wheel) نسخه ۰.۳.۱ که به طور جداگانه نصب شده بود، پنل/دارایی‌ها را ارائه داد، دسترسی API بدون احراز هویت را رد کرد و یک خروجی مصنوعی (synthetic export) تأیید شده با ۳۲ رویداد تولید کرد. فایل YAML گردش کار (Workflow) پارس شد، اما بررسی جدید runtime کانتینر اجرا نشد: هیچ runtime محلی قابل استفاده‌ای از Docker/Podman/Linux در دسترس نبود.

[نتایج آمادگی را](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/READINESS.md) برای شکاف‌های باقی‌مانده در قابلیت استفاده، سرویس زنده و پلتفرم ببینید. این پچ سیستم‌عامل‌های اضافی را واجد شرایط نمی‌کند.

## نسخهٔ ۰.۳.۰

کل مجموعهٔ runtime سنجاق‌شده با موفقیت عبور کرد: **۶۱ تست**، با یک هشدار منسوخ‌سازی از TestClient بالادستی Starlette. متادیتای runtime گزارش می‌دهد TgWitness 0.3.0 و python-socks 2.8.2؛ بررسی pip با موفقیت انجام شد. اجرای پذیرش مرورگر بدون هیچ خطای جاوااسکریپت صفحه‌ای با موفقیت انجام شد.

چرخ ۰.۳.۰ ساخته شد و در یک دایرکتوری بسته مجزا نصب گردید. این چرخ، پنل و دارایی‌ها را تأمین کرد، یک درخواست API بدون احراز هویت را رد نمود و یک ژورنال مصنوعی ۳۲ رویدادی را صادر کرد که از تأیید مستقل عبور کرد. پیوندهای مستندات محلی حل شدند. پس از اصلاح نرمال‌سازی کلید-خالی MTProxy، هر نه تست اتصال/امنیت با موفقیت مجدداً اجرا شدند.

پوشش جدید شامل:

- نام کاربری/رمز عبور SOCKS5 و اتصال HTTP CONNECT از طریق سرورهای تست لوپ‌بک واقعی؛ یک پروکسی پیکربندی‌شده مرده به جای بازگشت به مقصد، شکست می‌خورد.
- اعتبارسنجی پروکسی، انتخاب حمل‌ونقل MTProxy، رد اسرار جعلی TLS ee، پایداری، جداسازی فضای کاری، رد تغییرات حین مشاهده، و محرمانه حذف از وضعیت API و رویدادهای امضا شده.
- تبدیل فقط-خواندنی اسکیماهای مصنوعی Telethon SQLite نسخه‌های ۷ و ۸؛ هَش منبع بدون تغییر؛ رد سایر فرمت‌ها، ویوهای SQL و یک فایل WAL در حال انجام.
- کلید اصلی گاوصندوق خارجی: کلیدهای فضای کاری مشتق‌شدهٔ متفاوت، بازگشایی موفقیت‌آمیز، رد کلید نادرست/مفقود، و عدم مهاجرت ضمنی گاوصندوق‌های محلی موجود.
- تنظیمات پروکسی مرورگر، پاک‌سازی اعتبارنامه‌ها، افشای حفاظت از ذخیره‌سازی، صفحه اتصال موبایل، مجوزدهی فایل جلسه تبدیل‌شده، مسیرهای جداگانه، و تمام سناریوهای جمع‌آوری/صادرات پوشش‌داده‌شده قبلاً با یک کلاینت جعلی تلگرام.

در حین توسعه، یک تست لوپ‌بک به طور نامحدود منتظر قطع اتصال توسط طرف مقابل بود؛ اجرای دیگری پس از دست‌داد، یک ریست اتصال ویندوز را مشاهده کرد. اکنون این ابزار کل تبادل را محدود می‌کند و EOF/ریست پس از یک دست‌داد کامل را به عنوان قطع اتصال در نظر می‌گیرد. تأییدهای دست‌دادن/احراز هویت همچنان الزامی هستند. این موضوع شامل ارائه‌دهندگان پروکسی واقعی نمی‌شود و نشان‌دهنده نقص ثابت در انتقال تلگرام نیست.

مشاهده درخواست AdGuard میزبان که در زیر توصیف شده است همچنان اعمال می‌شود. از هیچ حساب تلگرام واقعی، خارج از پروکسی SOCKS/HTTP، یا سرور زنده MTProxy استفاده نشده است. MTProxy تجربی است و گزینه‌های انتخابی/اعتبارسنجی رمز آن بررسی شده است، نه تعامل‌پذیری زنده. دستورالعمل‌های جدید تبدیل کلید خارجی و جلسه فقط با اسرار مصنوعی آزمایش شدند. لینوکس/macOS/Docker در اینجا بدون تأیید باقی می‌مانند.

اندازه‌گیری throughput نسخه ۰.۲ در زیر تکرار نشده است و نباید به عنوان یک بنچمارک جدید چندحساب/پروکسی برای نسخه ۰.۳ ارائه شود.

## نسخهٔ پایهٔ ۰.۲.۰

روی ویندوز با پایتون ۳.۱۲.۱۰ بررسی شده است. هیچ حساب واقعی تلگرام متصل نبود.

| بررسی | نتیجه |
| --- | --- |
| مجموعه پایتون | ۵۲ مورد در محیط توسعه و ۵۲ مورد با runtime متصل‌شده موفق شدند؛ در هر اجرا یک هشدار منسوخ‌سازی از Starlette TestClient بالادست صادر شد. |
| سینتکس جاوااسکریپت | منتقل شده با Node.js |
| پذیرش کرومیم | گذشت؛ هیچ خطای جاوااسکریپت در صفحه وجود ندارد |
| قالب دسکتاپ/موبایل | در ابعاد 1440 × 1060 و 390 × 844 بررسی شده؛ هیچ سرریز افقی در سند وجود ندارد |
| محتوای پیام در قالب HTML | به صورت متن نمایش داده شد؛ اسکریپت تزریق‌شده اجرا نشد |
| جریان حساب آزمایشی | اطلاعات ورود API → تلفن → کد → احراز هویت دو مرحله‌ای → انتخاب گروه → شروع → اسنپ‌شات → مکث → بارگذاری مجدد |
| شواهد در مرورگر | مقایسه ویرایش، محتوای قبلی پس از حذف، فیلترها، دانلود ZIP، نقطه کنترل، رسید فرایند امضا شده، دانلود درخواست RFC 3161 و پیوند نقطه کنترل |
| چندحساب | جدا کردن ژورنال‌ها، کلیدها، منابع و وضعیت‌های زنده؛ سوئیچ مرورگر باعث ادامه کار سایر گردآورنده‌ها می‌شود؛ فضاهای کاری پس از راه‌اندازی مجدد باز می‌شوند؛ کپی حساب و تخصیص مجدد حساب رد شد |
| نارسایی‌های رمزنگاری | میدان‌های امضا شده تغییر یافته‌اند، میدان‌های بدون امضا اضافه شده‌اند، کلید نادرست، عضو آرشیو خراب، رسانه تغییر یافته/گمشده، قطع‌شدگی تشخیص‌داده‌شده توسط نقطه کنترل رد شد |
| ذخیره‌سازی | الحاق‌های همزمان تأیید می‌شوند؛ درخواست‌های به‌روزرسانی/حذف رد می‌شوند؛ راه‌اندازی اولیه دفترچه تغییر یافته را بدون الحاق رد کرده و قفل آن را آزاد می‌کند |
| پایداری رسانه | نوشتن اتمیک پیام/وظیفه؛ بازیابی پس از راه‌اندازی مجدد؛ نگه‌داشتن توصیف‌کننده‌های نسخهٔ اصلی؛ رد جایگزینی صف و خرابی فایل‌های موجود؛ ماندگاری FloodWait؛ ایزوله‌سازی خطاهای منبع |
| پخش زنده | پیش‌وند پایدار صادر می‌شود در حالی که سوابق جدید اضافه می‌شوند؛ نقطه‌کنترل حفظ‌شده تشخیص می‌دهد که دفترچه گزارش ناقص است؛ صدور تمام جریان رویدادها را مادی‌سازی نمی‌کند |
| RFC 3161 | OpenSSL 3.5.9 درخواست‌های تولیدشده را می‌خواند؛ پاسخ مصنوعی CA/TSA تولیدشده محلی پذیرفته می‌شود؛ داده‌های تغییر یافته، nonce و CA نادرست رد می‌شوند؛ محیط CA پیرامونی بر اعتماد صریح غلبه نمی‌کند |
| راه‌اندازی محلی | start.py --setup-only محیط مجازی ایزوله را به نسخه 0.2.0 ارتقا داد؛ سورس و متادیتای نصب‌شده با هم مطابقت دارند؛ بررسی pip با موفقیت انجام شد |
| چرخ | نسخهٔ ۰.۲.۰ ساخته و به‌طور جداگانه در زیرپوشهٔ test-results نصب شد؛ پنل/دارایی‌ها را ارائه کرد، درخواست‌های API بدون احراز هویت را رد کرد، یک آرشیو مصنوعی ۳۲ رویدادی را صادر و تأیید کرد |

تست‌های منبعی از FastAPI 0.159.1، Uvicorn 0.54.0، Telethon 1.45.0، cryptography 50.0.2، pytest 9.1.1 و Playwright 1.62.0 استفاده می‌کنند. محیط اجرایی ثابت‌شده از FastAPI 0.162.0، Starlette 1.10.0، Uvicorn 0.54.0، Telethon 1.45.0، و cryptography 50.0.2 استفاده می‌کند. فایل deploy/constraints.txt پین‌های نسخهٔ runtime را ثبت می‌کند؛ فایل‌های deploy/requirements.lock و deploy/build.lock هَش SHA-256 هر فایل پکیج را اضافه می‌کنند، و سرورهای Docker و high-assurance فقط از روی آن‌ها نصب می‌کنند (pip --require-hashes). همچنین شواهدی از سازگاری در هر پلتفرم CI پیکربندی‌شده وجود ندارد. CI از راه دور اجرا نشده است.

## اندازه‌گیری مصنوعی ظرفیت محلی

فرمان: `python tools/check_capacity.py --events 10000 --chats 100`

| متریک | مشاهده‌شده |
| --- | --- |
| ورودی | ۱۰٬۰۰۰ رویداد پیام مصنوعی در ۱۰۰ منبع مصنوعی منتخب |
| متن پیام | ۴۰۰ کاراکتر؛ بدون رسانه یا شبکه |
| ورودی | ۵۳٫۲۷۳ ثانیه؛ ۱۸۷٫۷ رویداد در ثانیه |
| تاخیر پردازشگر | p50 4.162 میلی‌ثانیه؛ p95 7.784 میلی‌ثانیه؛ حداکثر 129.118 میلی‌ثانیه |
| خروجی زیپ | ۱۹٫۸۶۸ ثانیه با فعال بودن tracemalloc |
| نقطه اوج تخصیص‌های خروجی پی‌thon ردیابی‌شده | ۰.۵۱ مگابایت؛ RSS پردازش نمی‌شود |
| اندازهٔ فایل زیپ | ۴٬۶۱۰٬۹۶۲ بایت |
| تأیید مستقل | تمام ۱۰٬۰۰۰ رویداد تأیید شدند |

این ابزار مسیر محلی ضبط/صادرات سریالی را در این میزبان ویندوز اندازه‌گیری می‌کند. این ابزار اندازه‌گیری، تحویل MTProto، حساب‌های همزمان، محدودسازی تلگرام، رسانه‌ها، بار کاری طولانی‌مدت یا تعداد تضمین‌شده‌ای از چت‌های واقعی را انجام نمی‌دهد. این اندازه‌گیری مربوط به قبل از ابزارهای نهایی مهر و موم زمانی آفلاین است، که مسیر پیام اندازه‌گیری‌شده را تغییر نمی‌دهد.

## مشاهدات محیطی

محدودیت‌های sandbox ویندوز، دایرکتوری‌های موقت پیش‌فرض pytest/pip و زیرفرآیند Playwright را مسدود کردند. Pytest از یک دایرکتوری موقت جدید در داخل پروژه استفاده کرد؛ فرآیندهای نصب و مرورگر به اجرای تأییدشده خارج از sandbox نیاز داشتند.

ابزار AdGuard دستگاه، درخواست‌ها را به local.adguard.org در مرورگر تزریق کرد. رسید مرورگر آن درخواست‌ها را حفظ می‌کند. این اجرا، مدرکی بر عدم وجود هیچ‌گونه درخواست خروجی در یک محیط مرورگر دست‌نخورده نیست؛ خودِ منبع اپلیکیشن حاوی هیچ‌گونه درخواست دارایی خارجی/CDN/تحلیلی نیست. تنظیمات AdGuard تغییر نکرده است.

آخرین اجرای مرورگر همچنین یک خطای OSError 10022 مربوط به پاک‌سازی ساکت asyncio ویندوز را ثبت کرد. تمام ادعاهای مرورگر با موفقیت پاس شدند و هیچ خطای جاوااسکریپتی در صفحات رخ نداد. علت آن مشخص نشد و این اجرا، عدم وجود مشکلات حمل‌ونقل سمت میزبان را نشان نمی‌دهد.

اولین پروب HTTP بسته نصب‌شده با استفاده از درخواست‌های قطع اتصال urllib، با ریست شدن اتصال مواجه شد، هم در داخل و هم در خارج از sandbox و با هر دو مجموعه وابستگی. پروب نهایی از اتصالات پایدار استاندارد HTTP/1.1 از طریق http.client استفاده کرد و با موفقیت عبور کرد. درخواست‌های مرورگر نیز با موفقیت انجام شدند. منشأ دقیق ریست‌ها مشخص نشد؛ و آن‌ها به‌عنوان یک نقص ثابت در برنامه تلقی نشدند.

## صلاحیت‌های باقی‌مانده

ژورنال زندهٔ نگهداری‌شده، ثبت واقعی جمع‌آوری، ویرایش‌ها، اعلان‌های حذف، پیوست‌ها، بازبینی‌های مجدد و مدیریت محدودیت نرخ را فراهم می‌کند. این ابزار سوابق جامع تحویل، ماتریس کنترل‌شده دیده‌بانی نقش‌ها، واکنش‌دهندگان، انتظار سیل طولانی‌مدت (FloodWait)، مسدودسازی حساب‌ها و بازیابی پس از وقفه شبکه/فرآیند را ثبت نمی‌کند. صدور توکن QR از تأیید QR موبایلی تکمیل‌شده مستقل است.

ساخت/اجرای Docker، نصب لینوکس/macOS، تحمل بار بالا و مداوم، بازبینی امنیتی مستقل، پاسخ واقعی و مستقل به TSA، اعتبارسنجی لغو/آرشیو گواهی و گواهی‌نامه قانونی (forensic) خارج از محدوده صلاحیت‌های ثبت‌شده باقی می‌مانند. وضعیت MTProto ذخیره شده و قابلیت جبران (catch-up) پیاده‌سازی شده‌اند؛ اما بازپخش اتمی پایدار (atomic durable replay) هنوز پیاده‌سازی نشده است. جمع‌آوری لاگ‌های ادمین، لیست‌های ری‌اکتور اضافی و پینگ کوتاه‌مدت اولویت‌دار همچنان ویژگی‌های جداگانه‌ای هستند. برای مشاهدهٔ ماتریس صلاحیت کنترل‌شده، به [پذیرش زنده](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/LIVE_ACCEPTANCE.md) مراجعه کنید.

رسیدهای محلی و اسکرین‌شات‌های دقیق در مسیر test-results/ (توسط Git نادیده گرفته شده) قرار دارند. اسکرین‌شات عمومی در docs/assets/ فقط حاوی داده‌های نمایشی خیالی است.

## وب‌سایت عمومی و آماده‌سازی برای انتشار · ۲۷ اکتبر ۲۰۲۶

پیش‌نمایش جداگانه `website/` و ساخت صفحات پس از بررسی‌های پنل فوق اضافه شدند. هیچ‌یک از پیکربندی حساب زنده یا منطق جمع‌آوری تغییر نکرده است.

- مجموعهٔ برنامه‌های موجود با موفقیت عبور کرد: ۱۳۸ مورد قبول، ۱ مورد فقط POSIX رد شد و یک هشدار منسوخ‌سازی از منبع بالادستی Starlette/httpx. ۱۱ تست ساخت سایت جدید نیز به‌طور مستقل با موفقیت انجام شد، از جمله رد خروجی غیرمنتظره و رد ورودی مرتبط.
- هر دو اسکریپت مرورگر برنامه با استفاده از project-venv Playwright و Chromium headless shell 156 اجرا شدند. هیچ خطای جاوااسکریپت صفحه یا درخواست خارجی ثبت نشد. تمام سناریوهای حساب کاربری از حمل‌ونقل جعلی و داده‌های خیالی استفاده کردند.
- `tools/check_site.py` با عرض‌های ۳۲۰، ۳۹۰، ۷۶۸، ۱۰۲۴ و ۱۴۴۰، همراه با زیرمسیر URL پروژه، برگه‌های صفحه‌کلید، دسترسی موفق/ردشده به کلیپ‌بورد، کاهش حرکت و غیرفعال بودن جاوااسکریپت عبور داده شد. هیچ درخواست دارایی ناموفقی یا درخواست خارجی رخ نداد.
- `tools/build_site.py` ده فایل عمومی مجاز‌شده تولید کرد، در مجموع حدود ۴۶۰ کیلوبایت. اسکرین‌شات‌های مرورگر و یک رسید در `test-results/site/` نادیده گرفته شده‌اند.
- چرخ پس از نصب ابزار build-only setuptools/wheel در محیط پروژه با موفقیت ساخته شد. نصب آن در یک هدف ایزوله و اجرای `tools/check_install.py` موفق بود: دارایی‌های استاتیک، کنترل دسترسی، یک خروجی مصنوعی ۳۲ رویدادی امضا شده و دانلود جریانی که به‌طور مستقل تأیید شده بود.
- `pip check` عبور کرد. یک اسکن الگویی از کاندیداهای عمومی منتخب Git هیچ بلوک کلید خصوصی قابل تشخیص، توکن‌های GitHub/bot/AWS، تخصیص‌های مخفی طولانی تحت‌اللفظی یا نشانگرهای تعارض ادغام را پیدا نکرد. این اثباتی بر عدم وجود هر فرمت مخفی ممکن نیست. پروب‌های کلید در Runtime-data/session نادیده گرفته شدند.
- احراز هویت CLI گیت‌هاب نامعتبر بود؛ هیچ سرور راه دوری پیکربندی نشده بود و هیچ commit اولیه وجود نداشت. هیچ عملیات push، workflow میزبانی‌شده، استقرار Pages یا release انجام نشد. اعتبارسنجی داکر و تلگرام/پلتفرم زنده خارج از محدوده این بررسی باقی می‌ماند.

در این میزبان، قفل دانلود Playwright در سیستم فایل فضای کاری E: با شکست مواجه شد. نصب Chromium تحت `%LOCALAPPDATA%/tgwitness-playwright` و استفاده از همان `PLAYWRIGHT_BROWSERS_PATH` برای بررسی‌ها با موفقیت انجام شد. این یک راه‌حل موقت برای محیط است، نه تغییری در وابستگی‌های زمان اجرای برنامه.

## مستندات تعاملی و متادیتای وب‌سایت · ۲۹ اکتبر ۲۰۲۶

وب‌سایت عمومی شامل ۱۲ صفحه HTML انگلیسی است: یک صفحه اصلی، یک نمایه راهنما و ده راهنما. این محصول شامل ۲۸ فایل ارائه با فهرست صریح، با حجمی در حدود ۱.۸۵ مگابایت، و بدون هیچ‌گونه دادهٔ گردآورنده است. وب‌سایت عمومی به زبان انگلیسی است؛ ترجمه‌های برنامه و راهنماهای مخزن ترجمه‌شده جداگانه هستند.

- تست‌های سایت، انتشار منبع و مرزبندی نسخه: **۱۸ قبولی، ۲ رد**. این موارد نادیده گرفته شده مربوط به ایجاد پیوند نمادین (symlink) در این سیستم‌عامل ویندوز است. تست‌ها بررسی می‌کنند: متادیتای منحصربه‌فرد صفحات، صفحات عمومی فقط به زبان انگلیسی، آدرس‌های اینترنتی کانونیکال، تمام موارد نقشه سایت، دارایی‌ها/لنگرهای محلی، ناوبری ساختاریافته و مستثنی‌سازی فایل‌های خصوصی.
- هر دو `tools/check_site.py` و `tools/check_docs_site.py` در کرومیم با مقادیر 320، 390، 768، 1024 و 1440 پیکسل تحت زیرمسیر URL پروژه پاس شدند. راهنما بررسی می‌کند تمام ۱۱ صفحه مستندات، جستجو و ناوبری صفحه‌کلید، کلیپ‌بورد موفقیت/رد و محتوای قابل خواندن بدون جاوااسکریپت را پوشش می‌دهد.
- پنج مثال تعاملی ارائه شده: پخش/قدم‌زدن/مکث/ریست پیام با حرکت کاهش‌یافته و تعلیق خارج از صفحه؛ زنجیره‌های هش اصلی/تغییر‌یافته/بازسازی‌شده/کوتاه‌شده؛ تصمیمات شاهد در مورد پذیرش/بازگشت/انشعاب/عدم پاسخ؛ و سناریوهای تحویل کامل/تأخیری/غایب؛ و یک نقشه تحقیق که پیوند می‌دهد مشاهدات چت متقاطع فرضی بر اساس شناسه فرستنده، مقصد و هش پیوست. کنترل‌های تحقیق، بررسی‌های ناوبری صفحه‌کلید و پشتیبان بدون جاوااسکریپت را با موفقیت پشت سر گذاشتند. نتایج SHA-256 مرورگر به طور مستقل با `hashlib` پایتون و JSON کانونیکال مقایسه شدند. مثال هش همچنین هنگام عدم دسترسی به Web Crypto، حالت پشتیبان قابل خواندن خود را حفظ کرد.
- نسبت‌های تحویل و نشانگرهای نمودار با جدول قابل دسترسی مطابقت داشتند. برچسب‌های محور موبایل پس از بازبینی بصری بزرگ‌تر شدند. هر نمونه برچسب «توضیحی» یا «ساختگی» دارد و هیچ‌یک از نمونه‌های تماس در مرورگر با تلگرام ارتباط برقرار نمی‌کنند.
- هیچ درخواست خارجی، درخواست HTTP ناموفق یا خطای جاوااسکریپت ثبت نشد. اسکرین‌شات‌ها و رسیدهای دسکتاپ/موبایل تحت عنوان `test-results/site/` و `test-results/docs-site/` نادیده گرفته شده‌اند. فهرست مستندات، نمونه‌های پیام/هش، طرح‌بندی ویژنس، نمودار تحویل و نقشه تحقیق در اندازه‌های دسکتاپ/موبایل بازبینی شدند.
- اسکن انتشار برای ۲۸۲ فایل منبع عمومی و ۱۴۲۶ لینک مستندسازی محلی موفقیت‌آمیز گذشت. Ruff برای ابزارها و تست‌های سایت پایتون اصلاح‌شده نیز موفقیت‌آمیز گذشت.
- `docs/HOW-IT-WORKS.md` یک همراه Markdown گیت‌هاب با نمودارها و فرمول‌های Mermaid ارائه می‌دهد. `docs/INVESTIGATION.md` دامنه کل حساب، استخراج تاریخچه هر چت، پروفایل افراد، ارجاعات بین‌چتی، خطوط زمانی و واگذاری یک پرونده تأییدشده را پوشش می‌دهد. مراحل و محدودیت‌های آن در برابر دامنه، جمع‌آوری، پرونده، خروجی، اعتبارسنج و کد پنل فعلی بررسی شد. رندرینگ میزبانی‌شده در گیت‌هاب بررسی نشد.

این یک بررسی محلی وب‌سایت/مستندات است. این بررسی، احراز هویت زنده تلگرام، استقرار صفحات میزبانی‌شده، موفقیت CI از راه دور یا ایندکس شدن در موتورهای جستجو را انجام نمی‌دهد. به [رویه انتشار](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/PUBLISHING.md) و [یادداشت‌های متادیتای وب‌سایت](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/SEO.md) مراجعه کنید.
