Справочник / Безопасность и проект
Что проверено
Тестирование Telegram в режиме реального времени, автоматические проверки, проверки в браузере и то, что пока остаётся непроверенным.
Тестовый аккаунт Telegram в режиме реального времени · 29 октября 2026 года#
Данная учетная запись продолжала функционировать и после приведённого ниже теста. 29 октября в 12:10 по UTC её область действия была расширена на всю учетную запись (каналы, группы, личные чаты и боты); панель запросила подтверждение, и подписанный журнал зафиксировал это действие. К 17:59 по UTC в журнале содержалась следующая информация:
| Запись произведена с 27 октября 21:36 по 29 октября 17:59 по UTC | Количество |
|---|---|
| Записи в журнале | 9,968 |
| Новые сообщения | 5,308 |
| из них после перехода на полный аккаунт | 3,878 |
| Удаления | 784 |
| из них были удалены после того, как TgWitness сохранил сообщение | 596 |
| Редактирование | 41 |
| Сообщения, добавленные в ходе повторной проверки | 2,273 |
| Сообщения, которые не удалось обнаружить при повторной проверке | 18 |
| Сообщения, сохраненные с помощью моментальных снимков истории | 242 |
| Сохраненные вложения | 247 |
| Запуск программы сбора данных | 19 |
| Telegram FloodWait приостанавливает работу | 26 |
- Проверка Verify, проведённая экспертной группой, подтвердила подписи и цепочку хэшей всех 9 968 записей.
- Сообщения поступили из 2 групп или каналов, а также из 3 личных чатов и от ботов. Была нажата одна кнопка отправки сообщения в разделе «Чаты»; запрос и ответ Telegram зафиксированы в журнале.
- Новые чаты добавлялись при повторном сканировании учетной записи сборщиком данных после перезапуска. Функция сохранения
ранее отправленных сообщений в новых чатах была отключена (
history = 0), поэтому данный вопрос здесь не рассматривается.
Не охватываются: реакции, изменения в составе участников, профили пользователей, отправка сообщений, присоединение по приглашению, прокси-серверы, уведомления, бот «witness» и одновременное использование нескольких учетных записей. Публичные файлы содержат только статистические данные.
Экспорт, защищённый паролем, открывается с помощью libarchive · 29 октября 2026 года#
Архив, созданный с использованием кода шифрования экспорта (WinZip AES-256, формат, поддерживаемый 7-Zip и WinRAR
), был открыт с помощью Windows tar (bsdtar 3.6.2, libarchive). При вводе правильного пароля
извлечённый файл совпал с исходным по SHA-256; при вводе неправильного пароля выдавалось сообщение «Неверная
парольная фраза». Сами программы 7-Zip и WinRAR запускаться не стали.
Тестирование Telegram в режиме реального времени · 27–29 октября 2026 года#
Один реальный аккаунт Telegram, авторизованный через встроенный пул пар API, осуществлял запись данных одной супергруппы с 27 октября 21:36 UTC по 29 октября 05:15 UTC. Сборщик данных запускался 12 раз в течение этого периода.
| Зарегистрировано | Количество |
|---|---|
| Записи журнала, включая сигналы о работоспособности и сервисные записи | 2,385 |
| Новые сообщения | 1,291 |
| Удаления | 472 |
| из них были удалены после того, как TgWitness сохранил текст | 347 |
| Редактирование | 12 |
| Сообщения, пропущенные во время остановки, добавлены в ходе повторной проверки | 12 |
| Сохраненные вложения | 17 |
| Вложения не загружены (функция загрузки отключена или файл для загрузки отсутствует) | 14 |
| Telegram FloodWait делает паузы продолжительностью по 3 секунды при повторных проверках | 8 |
- Подписи и цепочка хэшей всех 2 385 записей проверяются с помощью открытого ключа журнала.
- После перезапуска сборщик возобновляет работу с сохраненного состояния обновления (
pts), и Telethon догоняет отставание; затем в ходе повторной проверки добавляются сообщения, которые все ещё отсутствуют. - При каждом вызове FloodWait сборщик выжидал заданное время и продолжал работу.
- Учётная запись оставалась авторизованной, и 29 октября произошло повторное подключение к той же сессии.
В рамках данного теста не рассматривались следующие аспекты: одновременное использование нескольких учетных записей, права администратора, прокси-серверы, перебои в работе продолжительностью более нескольких часов, а также полная процедура приёма данных в режиме реального времени. Публичные файлы содержат исключительно следующие данные: никаких идентификаторов учетных записей или чатов, сообщений или учетных данных.
В приведённых ниже более старых записях описываются результаты отдельных запусков; в большинстве из них использовались синтетические тестовые клиенты. Последние результаты автоматизированных тестов приведены ниже.
Встроенные публичные списки MTProxy · 29 октября 2026 года#
Перед вами историческая запись результатов тестирования исходной сборки с ручным выбором. Информацию о текущих режимах автоматического выбора пула и IP-адресов см. в настройках подключения. Приведённые ниже данные о количестве и неподдерживаемых функциях относятся к данной тестируемой версии.
Добавлены встроенный общедоступный снэпшот и явное обновление по HTTPS из репозиториев SoliSpirit/mtproto и zakky8/mtproto-proxy-pro. На данном хосте программа загрузки приложений успешно получила оба канала 29 октября 2026 года в 12:58 по UTC: 118 уникальных совместимых конечных точек после фильтрации, удаления дубликатов и ограничения до 64 записей на каждый источник. Это подтверждает возможность извлечения списка, но не подключение или доставку сообщений через эти конечные точки. Ни одна реальная учетная запись не была подключена к прокси из списка в ходе данной работы. Руководство для операторов и пользователей.
В случае неудачных, пустых или несовместимых ответов источника предыдущие записи и даты сохраняются. Обновления не изменяют выбранный маршрут. Публичные адреса проверяются, а IP-адреса фиксируются при выборе; маршруты оператора и ручные маршруты остаются отдельными. Проверка подключения теперь доступна на панели до входа в учётную запись. Поддельные TLS-сертификаты и автоматический выбор прокси по-прежнему не поддерживаются. Каталог оператора полностью переопределяет подписки.
- Полный набор тестов: 366 пройдены, 3 пропущены, 287,94 секунд. Предупреждения о существующих зависимостях и пропуски, связанные с платформой, остаются. Заключительная регрессионная проверка публичного списка/локализации: 36 пройдены, включая отклонение недопустимых портов прокси-серверов для загрузки; это частично дублирует полный набор тестов.
- Проверка совместимости с браузерами пройдена на английском и русском языках, в светлом и тёмном режимах при разрешении 390/1440 пикселей: встроенные варианты выбора, отсутствие внешних запросов при открытии настроек, явное обновление страницы, сохранение маршрутов и кеша при сбоях, проверка перед входом в систему, изоляция рабочего пространства при задержке ответа, сведения об источнике, а также макет и контрастность. Отсутствуют ошибки JavaScript и внешние запросы браузера.
- Окончательная статическая локализация прошла проверку для всех 13 языковых версий; новый текст переведён на русский язык с явными английскими запасными вариантами в остальных местах. Обновлённое встроенное руководство прошло проверку верстки и контрастности в обеих темах.
- Пройдены проверки Ruff и публикаций (259 общедоступных файлов, 1 354 локальных ссылок); обновлено проанализированы файлы Compose и CI YAML. Docker и удалённая CI здесь не запускались.
- Переработанный компонент прошел проверку на автономную установку, загрузку списка входящих компонентов и проверку подписанного экспорта. Все 69 ресурсов пакета соответствовали рабочей среде; были проверены хэши исходного кода.
Квитанции: 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-запросы.
Презентация дополнительных возможностей · 29 октября 2026 года#
Ранее доступный через бота Proof раздел теперь находится в разделе «Дополнительные настройки»: сначала представлен краткий обзор, за которым следует отдельная страница настройки для выбранного параметра. Форма «Witness» состоит из трёх этапов, при этом управление подключением, сетевые настройки и детали развёртки скрыты. Поддержка GitHub явно предусмотрена и не требует ввода учетных данных. Обзор на русском языке.
- Проведено 30 целевых тестов по локализации, настройке TgWitness и проверке публикаций.
- Проверены параметры настройки Chromium на английском и русском языках, в светлом и тёмном режимах при разрешении 390/1440 пикселей: фокус клавиатуры и нажатие клавиши «Ввод», отсутствие неявных связей при выборе дополнительных функций, сохранение черновиков, закреплённые настройки и загрузка токенов, очистка токенов при блокировке экрана, а также рабочие анкоры локального руководства. Проверены макет и контрастность текста на однотонном фоне.
- Проверено правильное функционирование переключения рабочих пространств, включая отложенный ответ с токеном, поступающий после переключения. Быстрая навигация позволяет найти дополнительные материалы с помощью терминов «бот», «доказательство» и «GitHub»; существующие проверки разрешений 320/390/1440 пикселей, а также русского языка и направления справа налево (RTL) также прошли успешно.
- В ходе тестового запуска не было зафиксировано ошибок JavaScript или внешних запросов браузера. Речь идёт о синтетических проверках пользовательского интерфейса, а не о новых реальных доказательствах публикаций в Telegram или ботах.
- Завершена загрузка языковых настроек и проверка охвата словаря для всех 13 локалей с сохранением явно указанных резервных вариантов на английском языке для всех локалей, кроме русской. Расширенное руководство Proof также прошло проверку верстки и контрастности при разрешении 320/768/1440 пикселей в обеих темах.
- Переработанная версия прошла проверку автономной установки и проверку подписанного экспорта. Все 67 упакованных ресурсов соответствовали рабочей среде; исходный архив содержит 253 общедоступных файла. Проверка источников и ссылок прошла успешно для 1 346 локальных ссылок на документацию.
Квитанции: 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.
На скриншотах использованы синтетические рабочие пространства.
Аудит настройки бота Witness и прокси-сервера · 29 октября 2026 года#
Настройка «witness» (теперь «Дополнительно» → «Бот в вашем канале») обеспечивает подготовку независимо развернутого «witness»: закреплённый ключ сборщика,
загрузка токена с ограниченной областью действия, собственный канал, политика публикации, маршрут HTTP/SOCKS5 и настраиваемый
Bot API. Токен бота остаётся на хосте свидетеля. Его новый токен --check-config проверяет
конфигурацию и файлы без установления сетевого соединения или создания ключа. Пути к файлам JSON
определяются на основе конфигурации. Все варианты свидетеля Compose теперь передают
настройки HTTP-прокси и Bot API.
Настройки учётной записи поддерживают управляемый оператором общедоступный каталог MTProxy, настраиваемый предварительный просмотр прокси-ссылок Telegram, а также существующие поля для ручного ввода. В ответах каталога не раскрываются секретные данные; при выборе маршрута он сохраняется в хранилище рабочей среды. В случае отсутствия или некорректного формата каталогов остаются доступными маршруты, вводимые вручную. Никакие прокси-адреса проекта или хостируемые службы-свидетели не создаются и не включаются по умолчанию. Пример использования Caddy раскрывает только конечную точку head с ограниченной областью действия, когда внешний свидетель должен получить доступ к коллектору, панель которого остаётся конфиденциальной.
Проверка:
- Полный набор тестов: 348 пройдены, 3 пропущены, 195,81 секунды. Пропуски обусловлены ограничениями Windows; два существующих предупреждения об устаревании зависимостей остаются.
- Заключительный цикл регрессионного тестирования версии Witness/конфигурации/релиза: 11 тестов пройдено, 1 пропущено. Этот набор частично пересекается с полным набором тестов. Тесты включают определение пути, предварительную проверку в автономном режиме, подпись и публикацию через реальный фикстур HTTP-API-бота с обратной связью, сбой зарегистрированной доставки, проверку токена канала и исключение секретного ключа прокси.
- Проверка установки на базе Chromium пройдена на английском и русском языках при разрешении 390/1440 пикселей: закреплённая конфигурация и загрузка токенов, очистка токенов при блокировке, выбор каталога, предварительный просмотр пользовательских ссылок с последующим явным сохранением, настройка макета и контрастности, а также отсутствие ошибок JavaScript или внешних запросов браузера. Исправлено переполнение узкого заголовка учетной записи на русском языке и вкладки входа в систему.
- Пройдены проверки Ruff, проверки источников и ссылок, а также синтаксический анализ YAML-файлов Compose и рабочих процессов.
- Переработанная версия прошла проверки автономной установки, панели управления/статических ресурсов и аутентификации через API, а также независимую верификацию прямых и потоковых синтетических экспортов, содержащих 32 события.
Квитанции: 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.
Сохраненная выше реальная история наблюдений в Telegram остаётся отдельным
доказательством. Инструкции по настройке.
Обзор презентации и документации · 29 октября 2026 года#
Страница продукта, экран входа, файлы README на английском и русском языках, а также изображения презентации теперь выполнены в едином визуальном стиле. На публичных скриншотах используются вымышленные демонстрационные данные. В ходе проверки также были исправлены устаревшие описания функций проверки в режиме реального времени и восстановления, приведённые выше.
- Целевая локализация, тестирование сайта и публикаций: 33 теста пройдено, 1 пропущено. Пропущенный тест требует создания символьной ссылки, что недоступно на данном хосте.
- Пройден общий этап тестирования панели Chromium, включая все языковые каталоги, макет RTL, светлые/тёмные темы, надёжный контраст текста и переключение рабочих пространств. Проверка создания профиля теперь дожидается фактического HTTP-ответа перед проверкой выбранного рабочего пространства.
- Экраны доступа на английском и русском языках прошли проверку верстки и контрастности в обеих темах при разрешении 320, 390, 768, 850 и 1440 пикселей; кнопка отправки остается в пределах начальной области просмотра.
- Проверено на совместимость с общедоступными сайтами при разрешении 320, 390, 768, 1024 и 1440 пикселей, включая элементов управления историей сообщений, увеличение скриншота/нажатие клавиши «Esc»/возврат фокуса, переход по клавиатурным вкладкам, отказ от использования буфера обмена, подпути проекта, уменьшенная анимация и резервный вариант без JavaScript. Не было зафиксировано ни одного сбоя при запросе ресурсов, внешних запросов или ошибок JavaScript.
- Переработанная версия прошла проверку автономной установки: ресурсы панели и локали загружаются, доступ к API требует аутентификации, а прямой и потоковый экспорт независимо проверяют все 32 синтетические события. Провереки Ruff и публичных источников/ссылок прошли успешно.
Локальные квитанции: test-results/design-tests.log, design-panel-final.log,
design-review-final.log, design-site.log и design-package/install-receipt.json.
Полный набор бэкэнд-процедур не запускался повторно для данного изменения в презентации/документации;
его предыдущий результат сохраняется в отчёте по аудиту, проведённому до публикации.
Версия 0.6.1#
В версии 0.6.1 изменены интерфейс панели, программы запуска, упаковка и документация; код, отвечающий за сбор, хранение, подписание и экспорт данных, остался без изменений. На Windows 11 / Python 3.12.10 с закреплённой средой выполнения:
- Полный набор прошел 137 тестов с 2 пропусками и существующим предупреждением Starlette. Новые тесты охватывают обработку комбинации клавиш Ctrl+C в программе запуска (серверу предоставляется 30 секунд для упорядоченного завершения работы) и устранимые сбои на этапах настройки.
- Chromium (безграфический режим 156) успешно прошел все 45 общих сценариев и 35 сценария, связанных с импортом учетных записей, QR-кодами и ключами аутентификации, включая проверку контрастности сплошного текста, отсутствие горизонтального переполнения при размерах 320–1440 пикселей и видимость полей первого входа при размерах 320/390 пикселей. Ошибок JavaScript на странице или внешних запросов обнаружено не было.
python start.py --setup-onlyпереустановил пакет версии 0.6.1, иpython start.py --checkсообщил о готовности. Действующий серверpython -m tgwitness --demoпредоставил панель управления, таблицу стилей, скрипт, логотип, руководство и версию/api/status0.6.1; удалённый серверworkspace.cssвернул код ошибки 404.Start.cmdобнаружил установку Python за пределами PATH. В отсутствие доступной версии Python было отображено предложение об установке; после отказа от печатных инструкций программа завершила работу с кодом 1. На этапе загрузки с python.org был получен установщик версии 3.12.10, который прошел проверку Authenticode, проводимую Python Software Foundation; сам установщик на данном хосте запускаться не стал.start.shбез использования Python вывел подсказку по установке и завершил работу 1.scripts\Docker.cmdиscripts/docker-start.shбыли протестированы на поддельных исполняемых файлахdocker: правильная последовательность вызовов, адрес панели и вывод токена, а также отсутствие сообщения об успешном выполнении после сбоя.python tools/build_portable.pyсформировал пакет для Windows объёмом 18,8 MiB после проверки закреплённой контрольной суммы встраиваемой среды выполнения. После распаковки в путь, содержащий пробелы, и запуска с указанием в PATH только каталоговC:\Windows, встроенный Python прошел проверкуTgWitness-Check.cmd, обеспечил работу демонстрационной версии (32 события) и рабочей области в режиме реального времени, а Chromium отобразил журнал и панель с подробностями без ошибок JavaScript. Данные были записаны в папкуdataпакета.python tools/build_preview.pyсформировал исходный архив, состоящий из 110 файлов. В результате пробного запускаgit addбыл выведен тот же список из 110 файлов, в котором отсутствовали файлы сеансов, ключей, баз данных, токенов, журналов и экспорта, а также локальные абсолютные пути и строки, имеющие форму секретных данных.
В данном конкретном цикле сборки от 27 октября не было выполнено следующее: автоматическая установка Python, проверки сборки и Compose в Docker, запуски на Linux и macOS, а также новое тестирование с использованием реальной учетной записи. Реальные доказательства из Telegram зафиксированы выше и в результатах предыдущих проверок учетных записей, приведённых ниже. Одни лишь определения CI не являются достаточным основанием для подтверждения работоспособности платформы.
Версия 0.6.0#
Последний полный набор тестов с закреплённой средой выполнения на Windows 11 / Python 3.12.10 прошел 135 тестов, с одним пропуском, за 26,53 секунды с существующим предупреждением Starlette. Пропуск связан с необходимостью наличия прав доступа POSIX. После добавления модуля рендеринга QR-кодов в проверки готовности и измерения процессов 8 затронутых проверок готовности/рабочей среды также прошли успешно.
Новые возможности охватывают схемы Telethon 7/8, схемы Pyrogram 2/3, полные JSON-файлы ключи и JSON, содержащий только метаданные, файлы учетных записей с совпадениями/противоречиями, пароли TData, фальсификацию контрольных сумм и небезопасные пути, преобразование в памяти в автономном режиме и при аутентификации, онлайн-проверку идентификаторов учетных записей, успешное сканирование QR-кодов/двухфакторную аутентификацию/истечение срока действия, аннулирование просроченных данных и изоляцию учетных записей. В фикстурах TData для шифрования используется отдельная реализация AES-IGE.
Chromium прошел 45 общих сценариев и 35 сценариев, связанных с импортом учетной записи, QR-кодами и ключами аутентификации, при этом не было зафиксировано ни одной ошибки JavaScript на странице или внешних запросов. Новые проверки браузера охватывают все четыре формата ввода данных: защищённые данные TData, метаданные API, отображение QR-кодов, истечение срока действия/повторные попытки, двухфакторную аутентификацию (2FA), отклонение неверной учётной записи, блокировку/отмену рабочей среды, адаптивную верстку, а также задержки в ответах на преобразование после выбора более нового файла.
Оба набора браузеров вновь прошли тестирование после внесения изменений в форму входа в аккаунт. При настройке в режиме реального времени открывается форма входа в аккаунт; в демонстрационном режиме открывается пример журнала. На демонстрационной странице «Аккаунт» отображаются инструкции по запуску в режиме реального времени, а поля ввода учетных данных скрыты. Целенаправленные проверки при разрешении 320, 390 и 1440 пикселей подтвердили, что поле ввода числа и основная кнопка помещаются на экране без прокрутки, поля API изначально свернуты, а контрастность текста остается достаточной для чтения. Элементы управления захватом и проверкой остаются скрытыми после открытия их новых развертываемых разделов.
Был протестирован прямой поток с использованием ключа аутентификации (Auth Key) с синтетическими учетными данными через реальные конечные точки импорта и авторизации. Проверки охватывали неполные ключи, отсутствующий DC, неточные идентификаторы пользователей, несоответствие идентификационных данных учетной записи, сохраненные учетные данные API, отображение хода выполнения запроса, очистку секретных данных, а также задержки в ответах после редактирования или смены метода. Все четыре метода входа были проверены при разрешении 320, 390 и 1440 пикселей. Окно выбора файлов отображается до появления указаний по формату, а кнопка «Подключиться» помещается в начальную область просмотра шириной 844 пикселя при свернутых настройках API. В ходе данного цикла приемочных испытаний пользовательского интерфейса не предпринималось попыток авторизации с использованием реального ключа аутентификации.
Обновление панели было повторно проверено с использованием обоих наборов браузеров: не было обнаружено ни одной ошибки JavaScript на странице, ни внешних запросов. Набор функций учетной записи теперь включает в себя вставку одной пары API-идентификатора и хеша, отклонение некорректно сформированных или нескольких пар без замены полей, инструкции, касающиеся исключительно метаданных, а также игнорирование устаревших ответов на импорт после смены метода входа в систему или ручного редактирования учетных данных. Шесть дополнительных целевых проверок были успешно пройдено в отношении руководства по настройке, явного запуска/приостановки, восстановления при пустом поиске, а также окончательного макета подключения/локального руководства и надёжного контраста текста при разрешении 320, 390 и 1440 пикселей. Обновление функции прямого входа добавляет операцию с одним номером телефона и запросом кода, а также повторно использует сохраненную пару API текущего рабочего пространства для входа по телефону, QR-коду и сессии. Полный набор тестов на Python, указанный выше, включает новые тесты на сохранность данных, отклонение частичных учетных данных и изоляцию рабочих пространств. Проверки в браузере охватывают прямой ввод номера телефона, повторное использование сохраненных учетных данных, маршрутизацию исключительно по метаданным, авторизацию файлов одним нажатием кнопки и отклонение дубликатов учетных записей. Упрощённые формы ввода токена панели и номера телефона также были проверены без начальной прокрутки при разрешении 320, 390 и 1440 пикселей. Проверка совместимости подтвердила, что форма прямого ввода номера телефона может использовать более ранние конечные точки настройки/кода, пока всё ещё выполняется старый процесс.
Один предоставленный пользователем аккаунт был проверен отдельно, вне рамок общедоступных тестовых наборов. Входные данные Telethon, Pyrogram и TData сопоставились с одной и той же авторизацией; сопутствующий файл JSON содержал учетные данные API. Все четыре файла были загружены через панель версии 0.6.0, и Telegram подтвердил ожидаемый числовой идентификатор аккаунта. Исходные файлы остались без изменений. Источники не выбирались, а режим наблюдения оставался отключённым. Это представляет собой один пример импорта/входа в систему, а не сбор данных в режиме реального времени, восстановление или проверку пропускной способности.
Telegram также выдал реальный QR-токен, который был аннулирован без сканирования. Полные процедуры подтверждения по QR-коду и двухфакторной аутентификации (2FA) были протестированы с использованием синтетических клиентов; мобильное подтверждение с помощью реального приложения Telegram остаётся отдельным этапом проверки. В общедоступных файлах не содержатся реальные идентификаторы учётных записей, секретные данные или скриншоты.
Обновление программы запуска завершено; исходный код, установленные метаданные и маркер готовности
указывают на версию 0.6.0 с QR-кодом 8.2 и успешным результатом проверки pip check. Установленное колесо обеспечивало
работу панели и руководства, отклоняло неавторизованные запросы к API и самостоятельно
проверяло прямые и потоковые синтетические экспорты из 32 событий. Обновлённое автономное руководство
было проверено при разрешении 320, 390 и 1440 пикселей. Публичные скриншоты по-прежнему являются синтетическими.
Исходный релиз содержит 107 файлов, включённых в белый список. Ссылки на локальную документацию работают. Здесь пока не описаны такие аспекты, как запуск в среде Docker/Caddy, удалённая интеграция (CI) и публикация пакетов, среда выполнения ARM64, непрерывный сбор данных, а также полная матрица поддержки Telegram в режиме реального времени.
Версия 0.5.1#
В Windows 11 / Python 3.12.10 полный набор тестов проектной среды прошел успешно: 94 теста пройдено, 2 пропущено, за 31,21 секунды, с существующим предупреждением Starlette. Пропуски связаны с отсутствием на данном хосте прав доступа POSIX и возможности создания символьных ссылок. Фикстура HTTP-загрузки вывела диагностическую информацию о потоке запросов; все проверки прошли успешно. Данный запуск не подтверждает отсутствие проблем с транспортным уровнем хоста.
Новые тесты регрессионного покрытия охватывают отклоненные StringSession, изменения в коде и учетных записях с двухфакторной аутентификацией (2FA), отмену поиска идентификационных данных, ожидающую отмену входа в систему, а также обновления через зарегистрированные обработчики на активных, отклоненных, замененных и тестовых клиентах. Только активный сборщик передает события; сохраненные учетные данные и подписанная история остаются неизменными. Другие новые проверки охватывают поиск по Unicode после повторного открытия базы данных, включение границ политики мониторинга в Coverage, а также исключения из упаковки компонентов из открытых источников.
Фактический проект pythonw.exe запустил изолированную синтетическую панель, вернул
код состояния HTTP 200 и сохранил диагностические данные запуска в logs/server.log. Журнал не
содержал сгенерированного токена панели или записей о доступе по HTTP. Тест завершил работу только
своего собственного синтетического процесса. Задачи в Планировщике заданий зарегистрировано не было; вход/выход из системы,
переход в режим ожидания и восстановление работы службы остаются отдельными критериями оценки.
При приёмке на базе Chromium было успешно пройдено 45 сценариев; ошибок JavaScript на страницах не обнаружено, а также не было зафиксировано внешних запросов. Новые проверки охватывают даты и время на временной шкале с разрешением 601/768/850 пикселей, черновики вложений при обновлении статуса, новые правки, внесённые во время сохранения, очищенные результаты проверки при переключении учётных записей, запоздалые ответы на запросы проверки после перехода на другой сайт и возврата, а также чёткие границы проверки при поступлении новых событий. Также было исправлено расстояние между значком поиска и текстом, после чего набор браузеров был запущен повторно.
При запуске в браузере использовалась закреплённая среда выполнения в .venv и имеющаяся в системе
версия Playwright 1.62.0/Chromium, добавленная в путь импорта после проектной среды.
Установка дополнительных зависимостей для разработки была прервана из-за медленной загрузки Playwright;
новая версия браузерного инструмента не прошла проверку. Обычный
процесс python start.py --setup-only завершил обновление приложения. Исходный код, установленные
метаданные и маркер запуска сообщают версию 0.5.1; pip check прошел успешно. Проверки готовности
прошли успешно на новом, неиспользованном пути, с сохранением ожидаемого предупреждения о ключе локального хранилища.
Пакет версии 0.5.1 был установлен отдельно и прошел предварительное тестирование: все ресурсы панелей и руководств были предоставлены, неавторизованный доступ к API был заблокирован, а ZIP-архивы с доказательствами, содержащие 32 события — как прямые, так и потоковые — прошли независимую проверку. Файлы приложения в установленном пакете были сопоставлены с исходным кодом. Публичный архив исходного кода использует явно указанный список разрешённых типов файлов и отклоняет связанные исходные файлы; материалы среды выполнения, размещённые внутри каталогов с исходным кодом, исключаются при проведении регрессионных тестов.
В ходе цикла исправления кода выборка из открытых источников и набор кандидатов в Git содержали 86 файлов, при этом каталоги с данными выполнения не включались. Сканирование на наличие распознаваемых шаблонов закрытых ключей, токенов GitHub, токенов ботов Telegram и StringSession не выявило совпадений. Речь идёт об ограниченной проверке шаблонов, а не о всестороннем аудите секретных данных. Проверки по правилам игнорирования охватывают двенадцать распространённых артефактов, связанных с учётными записями, данными и экспортом. Файлы YAML, относящиеся к рабочим процессам, задачам и созданию сообщений, а также скрипт задачи для Windows были успешно проанализированы. Ссылки на локальную документацию работают.
Рассмотрены все семь выводов, сделанных в ходе проверки от 27 октября. Выполнение рабочего процесса на GitHub, среда выполнения под Linux/macOS/Docker, работа с реальным Telegram, взаимодействие с внешними прокси-серверами/TSA и проверка на устойчивость при постоянной нагрузке остаются за пределами данного локального запуска. Публикация репозитория, регистрация сервиса или сбор данных реальных аккаунтов не осуществлялись.
Обновление документации на английском языке#
Файл README, справочник по учётным записям и сеансам, описание рабочего процесса сбора данных и прилагаемое руководство теперь содержат информацию о поддерживаемых источниках входных данных, поведении рабочей среды, правилах обработки событий и форматах экспорта на английском языке. Три общедоступных скриншота были обновлены с использованием синтетических данных. На данный момент открытый репозиторий содержит 88 файлов, включая два новых руководства. Все 131 локальная ссылка в 23 документах Markdown работают.
После внесения изменений в интерфейс и руководство тестирование на Chromium вновь прошло все 45 сценариев; ошибок JavaScript на страницах или внешних запросов обнаружено не было. Полный набор тестов на Python не запускался повторно в рамках данного обновления документации и презентации; указанный выше результат (94 успешных прохождения) относится к предыдущему циклу тестирования после исправления кода.
Переработанный модуль был установлен на новую изолированную целевую систему. Его панель и средства наведения успешно выполнили свои функции, неавторизованный доступ к API был заблокирован, а как прямой, так и потоковый экспорт прошли независимую проверку на основе 32 синтетических событий.
Обновление по установке и развертыванию#
Специализированный установщик, упаковка и проверки готовности прошли 14 тестов, при этом один тест был пропущен из-за невозможности создания символьной ссылки. Проверки нативного обертки охватывают пути, содержащие пробелы, перенаправление аргументов, режимы настройки/демонстрации, а также распространение ненулевого кода завершения. Проверки Git Bash тестируют вспомогательную оболочку Docker с помощью имитированного демона, включая отсутствие Docker, отсутствие Compose, сбой при ожидании проверки работоспособности и успешный запуск через альтернативный порт. Эти имитированные проверки не подтверждают совместимость среды выполнения Docker.
Полная копия из открытых источников была установлена в новый каталог Windows,
путь к которому содержит пробелы. scripts\Setup.cmd создал новую среду и установил
закреплённую среду выполнения; Start.cmd --check --json сообщил о готовности, не создав
целевой каталог данных. pip check прошел проверку. Пересозданный компонент также прошел
проверку установленных пакетов, включая прямой и потоковый экспорт 32 событий.
Проанализированы синтаксис Shell и пять файлов YAML, описывающих рабочие процессы и настройки Compose. Настройки исходного кода и изображений Compose согласованы в отношении параметров хранения и выполнения. На данном этапе разрешены все 139 локальных ссылок в 23 документах Markdown. Отбор открытых источников содержит 99 файлов.
Определения CI теперь обеспечивают новую нативную настройку в Windows/Linux/macOS, а также контроль работоспособности Compose, управление доступом и сохранность данных при воссоздании контейнеров, а также настройку Caddy. Рабочий процесс выпуска условлен результатами этих проверок и дополнен эмулированной проверкой ARM64 на работоспособность. Docker недоступен на данном хосте: фактическое выполнение Compose/Caddy, выдача сертификатов, выполнение на ARM64, а также удалённый рабочий процесс и публикация пакетов остаются локально без ограничений. Код приложения и пользовательского интерфейса не изменился в результате данного обновления; предыдущие полные тесты на Python и в браузере не повторялись.
Версия 0.5.0#
Полный набор тестов «pinned-runtime» прошел успешно: 81 тест пройден, 1 пропущен, за 22,00 секунд, с существующим предупреждением Starlette. Проверка прав доступа POSIX пропускается в системе Windows. Новые тесты обработчиков отправляют сообщения, изменения, удаления с ограничением области действия и без него, реакции, обновления участников и служебные сообщения о членстве в соответствии с различными политиками. Отключенные категории не генерируют соответствующих наблюдений в режиме реального времени; диагностика покрытия и явные моментальные снимки остаются доступными. Тесты проверяют сохранённость политики, разделение рабочих пространств, подписанные записи аудита «до» и «после», поведение при неизменной политике, строгую валидацию и включение в следующий отчёт о процессе.
Тесты входа в демо-версию подтверждают, что её возможности отличаются от настроек токена панели управления: невозможно авторизоваться в действующей рабочей среде, невозможно изменить настройки сбора данных, а также запросы, отправленные удалённо, перенаправленные, междоменные или с недействительным хостом, не принимаются и не обрабатываются. Открытие сохраненной демо-версии без явного флага «demo» не приводит к автоматическому входу в систему.
Приёмные испытания на базе Chromium прошли 39 сценариев, включая вход в локальную демо-версию без ввода токена, проверку предустановок мониторинга, переход от выбора источника к политике, независимость на уровне учетной записи, а также проверку макета для настольных устройств (320/390 пикселей) и контрастности текста. Ошибок JavaScript на странице обнаружено не было. Запросы, в которые AdGuard вставил свой код, остаются в журнале. HTTP-тестовый набор для загрузки зафиксировал сброс соединения после того, как клиент прервал соединение; проверки всё же прошли успешно. Данный результат не отражает работу сервиса в режиме реального времени.
Стандартный лаунчер обновил изолированную среду до версии 0.5.0; исходный код и установленная версия совпадают, проверка с помощью pip прошла успешно. Существующее шифрование хранилища секретных данных, отказ при использовании неверного или отсутствующего ключа, а также проверки на подделку подписей и медиафайлов прошли успешно в полном наборе тестов. Не заявлено о каком-либо новом шифровании содержимого сообщений или вложений на уровне приложения.
Локальная демонстрационная версия перезапускается для предоставления доступа к обновленному пользовательскому интерфейсу. Существующие синтетические записи сохраняются; остановка старого фонового процесса демонстрации создаёт границу автономного режима при следующем запуске. Для этих проверок не используются реальные сеансы Telegram.
Запущенная панель localhost:8787 отображала версию 0.5.0, автоматический доступ к демо-версии, пять элементов управления мониторингом и 33 сохраненных синтетических события журнала. Отдельно установленный пакет wheel версии 0.5.0 обеспечивал доступ ко всем ресурсам панели и руководства, блокировал неавторизованный доступ к API и формировал проверенный ZIP-файл с 32 событиями как напрямую, так и через вспомогательную программу для потоковой загрузки. Версии пакетов в среде выполнения остаются зафиксированными в том виде, в каком они были зафиксированы для версии 0.4.
Версия 0.4.0#
Полный набор тестов с закреплённым временем выполнения пройдён: 78 тестов пройдено, 1 пропущено, за 19,77 секунд. Пропущенная проверка требует прав доступа POSIX; предупреждение об устаревании исходного Starlette TestClient остаётся в силе. Новые тесты охватывают потоковую загрузку/маршрутизацию в рабочей среде, заголовки авторизации, отказ от перезаписи, перенаправления, усечённые ответы, ограничения по заявленному и фактическому размеру, ограниченное чтение, очистку, файловые системы без жестких ссылок, сбои готовности и режимы запуска, в которых запрещена установка пакетов. Тесты экспорта подтверждают наличие локальных для рабочей среды временных файлов и выборочную очистку осиротевших файлов.
Тестирование на совместимость с Chromium прошло успешно по всем 36 перечисленным сценариям без ошибок JavaScript на страницах. В ходе тестирования проверялись имитация входа с помощью телефона/кода/двухфакторной аутентификации, преобразованные сессии, два рабочих пространства и отдельные маршруты/состояния, наблюдения, подписи, контрольные точки и запросы с временными метками, а также:
- Макеты для настольных компьютеров и разрешений 320/390 пикселей, отсутствие горизонтального выхода за пределы экрана, видимая навигация, а также поле для первого входа в систему в пределах начальной области просмотра шириной 844 пикселя.
- Контрастность текста на однотонном фоне соответствует пороговым значениям WCAG уровня AA. Недоступные элементы управления, непрозрачность, а также фоновые изображения и градиенты не учитываются; данный анализ не является полной проверкой на соответствие WCAG.
- Реальный отклик на запрос экспорта, сгенерированный с помощью имитации средства выбора файлов ОС с возможностью записи, с последующей независимой проверкой ZIP-архива; отмена запроса не приводит к отправке запроса на экспорт.
- Ошибка записи приводит к прерыванию передачи данных в конечный пункт назначения; резервный механизм объёмом 128 MiB отклоняет заявленный ответ, превышающий допустимый размер, без выделения соответствующего полезного нагрузки.
- Английское руководство по локализации для настольных компьютеров и обоих вариантов узкой ширины.
Диалоговое окно сохранения в ОС и фактическая запись данных объёмом в несколько гигабайт в браузере не были автоматизированы и не прошли соответствующую проверку. Тесты загрузки на Python используют ограниченные фрагменты и тестовые наборы с обратной связью. Полная приёмка развёртывания с использованием реального Telegram остаётся отдельным вопросом.
Стандартный установщик обновил .venv до версии 0.4.0. Исходные данные и метаданные установленной версии совпадают;
pip check прошел проверку. python start.py --check --json сообщил о готовности на новом
синтетическом пути без создания каталога данных. Предупреждение о хранении локальных ключей
по-прежнему отображается правильно: журналы и мультимедиа не шифруются приложением.
Пакет версии 0.4.0 был скомпилирован и установлен в отдельный каталог. Все 23 файла приложения байт за байтом совпадают с исходным кодом. Установленный пакет отображал панель управления и руководство/ресурсы на английском языке, блокировал неавторизованный доступ к API и экспортировал синтетический ZIP-файл с 32 событиями, который прошел проверку. Команда потоковой загрузки также извлекла независимо проверенный ZIP-файл из запущенного установленного приложения.
Публичная документация и локальное руководство представлены на английском языке; ссылки на локальную документацию работают. PowerShell проанализировал шаблон задачи Windows, а Python — файл plist для macOS. Речь идет о проверке синтаксиса, а не о запуске службы. Ни одна задача/служба не была зарегистрирована. Конфигурация CI теперь включает проверки готовности, однако удалённая CI здесь не запускалась.
При повторном запуске версии 0.4 в браузере вновь было зафиксировано встраивание AdGuard со стороны хоста, а также ошибка OSError 10022, связанная с очисткой сокетов asyncio в Windows. Проверки браузера прошли успешно; эти наблюдения, касающиеся условий среды, сохраняются, а не рассматриваются как исправленное поведение приложения. Первоначальные попытки запуска в песочнице OpenSSL/браузера/pip завершились неудачей; в успешных квалификационных запусках использовалось разрешённое выполнение вне песочницы.
Версия 0.3.1: исправления, связанные с готовностью к эксплуатации#
Проверки затронутого лаунчера, хранилища доказательств и API прошли успешно: 31 пройдено, 1 пропущено, одно предупреждение от Starlette на уровне исходного кода. Пропущенная проверка проверяет наличие прав доступа к каталогам по стандарту POSIX и не может установить эти права на данном хосте под управлением Windows. Тест на старую версию Python моделирует границу между версиями и импортом; интерпретатор Python 3.10 не был установлен и не прошел проверку. Результаты ранее прошедшего набора тестов версии 0.3 приведены ниже; полный набор тестов и сценарии для браузеров не запускались повторно в связи с этими целенаправленными изменениями.
Стандартный лаунчер обновил локальную среду до версии 0.3.1; исходные и установленные метаданные совпадают, проверка pip прошла успешно. Отдельно установленный колесо версии 0.3.1 обеспечивал работу панели и ресурсов, блокировал неавторизованный доступ к API и сформировал проверенный синтетический экспорт из 32 событий. Файл YAML рабочего процесса был проанализирован, однако новая проверка среды выполнения контейнера не была выполнена: не было доступно подходящей локальной среды выполнения Docker/Podman/Linux.
Ознакомьтесь с результатами проверки готовности, чтобы узнать об оставшихся недостатках в области удобства использования, работы в режиме реального времени и платформы. Данный патч не обеспечивает поддержку дополнительных операционных систем.
Версия 0.3.0#
Полный набор тестов в закреплённом режиме выполнения прошел успешно: 61 тест, с одним предупреждением об устаревании Starlette TestClient в исходном коде. Метаданные среды выполнения указывают на версии TgWitness 0.3.0 и python-socks 2.8.2; проверка pip прошла успешно. Приёмные тесты в браузере прошли без ошибок JavaScript на страницах.
Wheel версии 0.3.0 был скомпилирован и установлен в отдельный каталог пакетов. Он обеспечивал работу панели управления и ресурсов, отклонял неавторизованные запросы к API и экспортировал синтетический журнал из 32 событий, который прошел независимую проверку. Ссылки на локальную документацию работают. После корректировки нормализации «bare-key» в MTProxy все девять тестов подключения и безопасности были успешно запущены повторно.
Новые темы охватывают:
- Имя пользователя и пароль SOCKS5, а также HTTP CONNECT через реальные тестовые серверы loopback; неработающий настроенный прокси-сервер выдает ошибку, а не переключается на конечный сервер.
- Проверка прокси-серверов, выбор транспортного протокола MTProxy, отклонение поддельных секретных ключей TLS, сохранение данных, изоляция рабочего пространства, запрет на внесение изменений во время наблюдения, а также исключение секретных данных из статуса API и подписанных событий.
- Преобразование синтетических схем Telethon SQLite 7 и 8 в режим «только для чтения»; неизменный хэш исходного кода; отказ от других форматов, представлений SQL и невыполненного файла WAL.
- Внешний мастер-ключ хранилища: различные производные ключи рабочих пространств, успешное повторное открытие, отклонение в случае неверного или отсутствующего ключа, а также отсутствие неявной миграции существующих локальных хранилищ.
- Настройки прокси-сервера в браузере, очистка учетных данных, раскрытие информации о защите хранилища, страница мобильного подключения, авторизация файлов преобразованных сеансов, отдельные маршруты, а также все ранее рассмотренные сценарии сбора и экспорта данных с использованием поддельного клиента Telegram.
В ходе разработки тест с обратной связью бесконечно ожидал завершения работы узла-аналога; в ходе другого запуска было зафиксировано сброс соединения в Windows после установления связи. Теперь тестовый модуль ограничивает весь обмен данными и рассматривает EOF/сброс после завершения установления связи как закрытие соединения. Проверки рукопожатия/аутентификации по-прежнему обязательны. Это не относится к реальным провайдерам прокси-серверов и не подразумевает наличие постоянного дефекта транспортного уровня Telegram.
Описанное ниже наблюдение за запросами AdGuard по-прежнему актуально. Не использовалось ни одного реального аккаунта Telegram, внешнего SOCKS/HTTP-прокси или действующего сервера MTProxy. MTProxy находится на стадии экспериментальной разработки, и проверке подверглись только выбранные параметры и проверка секретных данных, но не взаимодействие в реальных условиях. Новые команды преобразования внешних ключей и сеансов были протестированы исключительно с использованием синтетических секретных данных. Работа на Linux, macOS и в Docker в данном случае не проверялась.
Приведённые ниже результаты измерения пропускной способности версии 0.2 не были повторены и не должны представляться в качестве нового теста производительности с использованием нескольких учетных записей и прокси-серверов для версии 0.3.
Базовая версия 0.2.0#
Проверено в Windows с использованием Python 3.12.10. Ни одна реальная учётная запись Telegram не была подключена.
| Проверить | Результат |
|---|---|
| Набор инструментов на языке Python | 52 теста прошли успешно в среде разработки и 52 — с закреплённой версией среды выполнения; в каждом запуске было зафиксировано по одному предупреждению об устаревании Starlette TestClient из исходного кода |
| Синтаксис JavaScript | Реализовано с использованием Node.js |
| Совместимость с Chromium | Пройден; ошибок JavaScript на странице нет |
| Версии для настольных компьютеров и мобильных устройств | Проверено при разрешении 1440 × 1060 и 390 × 844; горизонтального выхода текста за пределы документа не наблюдается |
| Содержание сообщений в формате HTML | Отображается в виде текста; вставленный скрипт не был выполнен |
| Примерный алгоритм работы учетной записи | Учетные данные API → телефон → код → двухфакторная аутентификация (2FA) → выбрать группу → начать → создать снимок → приостановить → перезагрузить |
| Доказательства в браузере | Сравнение редакций, предыдущее содержание после удаления, фильтры, загрузка в формате ZIP, контрольная точка, подписанное подтверждение процесса, загрузка запроса по стандарту RFC 3161 и привязка к контрольной точке |
| Поддержка нескольких учетных записей | Отдельные журналы, ключи, источники и состояния в режиме реального времени; при переключении браузеров другой сборщик данных продолжает работу; рабочие пространства восстанавливаются после перезапуска; дублирование учетных записей и переназначение учетных записей не допускаются |
| Криптографические сбои | Изменены подписанные поля, добавлены неподписанные поля, неверный ключ, повреждённый элемент архива, изменённые/отсутствующие медиафайлы, отклонено усечение, обнаруженное контрольной точкой |
| Хранение данных | Одновременные добавления подтверждаются; события обновления или удаления приводят к отклонению; при запуске система отклоняет измененный журнал без добавления новых записей и снимает с него блокировку |
| Долговечность носителей | Атомарная запись сообщений/заданий; восстановление после перезапуска; сохранение дескрипторов исходных версий; отклонение замены в очереди и повреждения существующих файлов; функция FloodWait сохранена; сбои на стороне источника изолированы |
| Потоковая передача данных | Стабильный префикс экспортируется по мере добавления новых записей; сохраненная контрольная точка позволяет обнаружить усечённый журнал; при экспорте не передаётся весь поток событий |
| RFC 3161 | OpenSSL 3.5.9 считывает сгенерированные запросы; принимаются локально сгенерированные синтетические ответы CA/TSA; отклоняются измененные данные, неверные нонсы и неправильные сертификаты CA; окружающая среда CA не переопределяет явно указанное доверие |
| Локальная настройка | Команда `start.py --setup-only` обновила изолированную среду .venv до версии 0.2.0; исходные данные и установленные метаданные совпадают; проверка pip прошла успешно |
| Wheel | Версия 0.2.0 скомпилирована и отдельно установлена в каталоге test-results; обеспечено предоставление панели управления и ресурсов, отклонены запросы к API без аутентификации, выполнен экспорт и проверка синтетического архива, содержащего 32 события |
В исходном коде для тестирования использовались 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 фиксирует версии среды выполнения; файлы deploy/requirements.lock и deploy/build.lock содержат SHA-256 каждого файла пакета, и Docker, а также серверы с высоким уровнем безопасности осуществляют установку исключительно на основе этих данных (pip --require-hashes). Ни то, ни другое не является доказательством совместимости на каждой настроенной платформе непрерывной интеграции. Удалённая непрерывная интеграция не запускалась.
Оценка синтетических локальных возможностей#
Команда: python tools/check_capacity.py --events 10000 --chats 100
| Показатели | Наблюдаемое |
|---|---|
| Входные данные | 10 000 событий, связанных с синтетическими сообщениями, из 100 выбранных синтетических источников |
| Текст сообщения | 400 символов; без мультимедиа и ссылок на сети |
| Импорт данных | 53,273 секунды; 187,7 событий в секунду |
| Задержка обработки | p50 4,162 мс; p95 7,784 мс; максимальное значение 129,118 мс |
| Экспорт в формат ZIP | 19,868 секунд при включенной функции tracemalloc |
| Пиковые значения распределения ресурсов при экспорте в Python | 0,51 МБ; RSS не обрабатывается |
| Размер ZIP-архива | 4 610 962 байт |
| Независимая проверка | Все 10 000 событий прошли проверку |
Данное измерение определяет локальный последовательный путь записи/экспорта на данном хосте под управлением Windows. Оно не учитывает доставку по протоколу MTProto, одновременное использование нескольких учетных записей, ограничения со стороны Telegram, мультимедийные файлы, длительную нагрузку или гарантированное количество реальных чатов. Измерение было проведено до внедрения окончательной версии инструментария для офлайн-проставки временных меток, который не изменяет измеренный путь сообщений.
Наблюдения за окружающей средой#
Ограничения песочницы Windows заблокировали доступ к временным каталогам pytest/pip по умолчанию и подпроцессу Playwright. Pytest использовал новый временный каталог внутри проекта; процессы установки и работы браузера требовали разрешенного выполнения за пределами песочницы.
Программа AdGuard внедрила в браузер запросы к local.adguard.org. В журнале браузера сохранены эти запросы. Данный тест не является доказательством полного отсутствия исходящих запросов в немодифицированной среде браузера; исходный код самого приложения не содержит запросов к внешним ресурсам, CDN или аналитическим сервисам. Настройки AdGuard не изменялись.
В ходе последнего запуска браузера также была зарегистрирована ошибка OSError 10022, связанная с очисткой сокетов asyncio в Windows. Все проверки браузера прошли успешно, и ошибок JavaScript на страницах не возникло. Причина не была установлена, и данный запуск не подтверждает отсутствие проблем с транспортным уровнем хоста.
Первый HTTP-тест установленного пакета, использующий запросы с закрытием соединения из библиотеки urllib, столкнулся с сбросами соединения как внутри, так и вне песочницы, причём с обоими наборами зависимостей. Последний тест использовал стандартные постоянные соединения HTTP/1.1 через http.client и прошел успешно. Запросы браузера также прошли успешно. Точная причина сбросов не была установлена; они не были квалифицированы как устраненный дефект приложения.
Остальные требования#
Сохраняемый журнал в режиме реального времени фиксирует фактические события сбора данных, редактирования, уведомлений об удалении, вложений, повторных проверок и обработки ограничений скорости. Он не фиксирует исчерпывающие данные о доставке или контролируемую матрицу видимости ролей, субъектов реагирования, длительного ожидания FloodWait, блокировок учетных записей и восстановления после сбоев в работе сети или процессов. Выдача QR-токенов остается отдельным процессом от завершённого подтверждения с помощью мобильного QR-кода.
Сборка и запуск в Docker, установка на Linux/macOS, устойчивость к высокой нагрузке, независимая экспертиза безопасности, реальный независимый отклик TSA, проверка отзыва и архивирования сертификатов, а также криминалистическая сертификация остаются за пределами зафиксированной квалификации. Реализованы сохранение состояния MTProto и функция «catch-up»; атомарное устойчивое воспроизведение пока не реализовано. Сбор административных журналов, дополнительные списки реакторов и приоритетный короткий опрос остаются отдельными функциями. См. текущую версию матрицы контролируемой квалификации.
Местные подробные отчёты и скриншоты находятся в папке test-results/ (игнорируются Git). Общедоступные скриншоты в папке docs/assets/ содержат исключительно вымышленные демонстрационные данные.
Подготовка публичного веб-сайта и публикации · 27 октября 2026 года#
Отдельная презентация «website/» и сборка Pages были добавлены после проведения
указанных выше проверок. Настройки реальных учетных записей и логика сбора данных не изменялись.
- Существующий набор приложений прошел тестирование: 138 тестов пройдено, 1 тест, поддерживающий только POSIX, был пропущен, и одно предупреждение об устаревании библиотек Starlette/httpx из исходного кода. 11 добавленных тестов сборки сайта прошли независимо друг от друга, включая отбраковку неожиданного вывода и отбраковку связанного ввода.
- Оба браузерных скрипта приложения прошли тестирование с использованием project-venv, Playwright и Chromium в режиме headless shell 156. Ошибок JavaScript на страницах или внешних запросов зафиксировано не было. Во всех сценариях работы с учетными записями использовались фиктивные транспортные протоколы и вымышленные данные.
tools/check_site.pyпрошел тестирование при ширине экрана 320, 390, 768, 1024 и 1440 пикселей с подпутем к URL-адресу проекта, переключением с помощью клавиши Tab, успешным/отклоненным доступом к буферу обмена, уменьшенной анимацией и отключенным JavaScript. Не было зафиксировано ни одного сбоя при запросе ресурсов или внешних запросов.tools/build_site.pyсодержал 10 общедоступных файлов, включённых в белый список, общим объёмом около 460 КБ. Снимки экрана браузера и квитанция находятся в файлеtest-results/site/, который игнорируется.- Создание файла wheel прошло успешно после установки инструментов setuptools/wheel, предназначенных исключительно для сборки,
в среде проекта. Установка в изолированную целевую среду и
запуск
tools/check_install.pyзавершились успешно: статические ресурсы, контроль доступа, подписанный синтетический экспорт из 32 событий и независимо проверенная потоковая загрузка. - Проверено по
pip check. В результате сканирования шаблонов среди публичных кандидатов, отобранных из Git, не было обнаружено узнаваемых блоков закрытых ключей, токенов GitHub/bot/AWS, длинных литеральных присвоений секретных значений или маркеров конфликтов слияния. Это не является доказательством отсутствия всех возможных форматов секретных данных. Зондирование данных выполнения, сеансов и ключей было проигнорировано Git. - Аутентификация GitHub CLI была недействительной; удалённый сервер не был настроен, и начального коммита не существовало. Не было выполнено ни одной операции push, ни одного хостируемого рабочего процесса, ни одного развёртывания на Pages, ни одного релиза. Проверка Docker и работоспособности Telegram/платформы в режиме реального времени не входит в рамки данной проверки.
На данном хосте произошёл сбой блокировки загрузки Playwright в файловой системе рабочей области E:.
Установка Chromium в каталоге %LOCALAPPDATA%/tgwitness-playwright и использование того же самого
PLAYWRIGHT_BROWSERS_PATH для проверок завершились успешно. Это обходной путь, связанный со средой,
а не изменение зависимостей приложения на этапе выполнения.
Интерактивная документация и метаданные веб-сайта · 29 октября 2026 года#
Публичный сайт состоит из 12 страниц в формате HTML на английском языке: главной страницы, указателя руководств и десяти руководств. Артефакт содержит 28 явно указанных файлов презентации, объёмом примерно 1,85 МБ, и не содержит данных сбора информации. Публичный сайт представлен на английском языке; переводы приложения и переведённые руководства репозитория находятся отдельно.
- Тесты сайта, исходных публикаций и границ выпуска: 18 пройдены, 2 пропущены. Пропущенные тесты касаются создания символьных ссылок в данной файловой системе Windows. Тесты проверяют уникальность метаданных страниц, наличие общедоступных страниц исключительно на английском языке, канонические URL-адреса, все записи в карте сайта, локальные ресурсы/якоря, структурированную навигацию и исключение частных файлов.
- Оба теста —
tools/check_site.pyиtools/check_docs_site.py— прошли в Chromium при разрешении 320, 390, 768, 1024 и 1440 пикселей в подпути URL проекта. Проверки, указанные в руководстве, охватывают все 11 страниц документации, поиск и навигацию с помощью клавиатуры, работу с буфером обмена (успех/отказ) и читаемость контента без использования JavaScript. - Проверено пять интерактивных примеров: воспроизведение/пошаговое перемещение/пауза/сброс сообщений с
ограниченной анимацией и приостановкой вне экрана; исходные/изменённые/восстановленные/усечённые
цепочки хэшей; решения свидетеля о принятии/отмене/разветвлении/отсутствии ответа; а также
сценарии полной/задержанной/недоставленной доставки; и карта расследования, связывающая
вымышленные наблюдения за перекрестным обменом сообщениями по идентификатору отправителя, адресату и хешу вложения
. Элементы управления расследованием прошли проверки на навигацию с клавиатуры и резервные варианты без использования JavaScript
. Результаты SHA-256 в браузере были
независимо сопоставлены с результатами
hashlibна Python и каноническим JSON. Пример хеша также сохранял читаемый резервный вариант при недоступности Web Crypto. - Показатели доставки и маркеры на графиках соответствовали таблице, доступной для просмотра. Метки осей на мобильной версии были увеличены после визуальной проверки. Каждый пример помечен как иллюстративный или синтетический, и ни один из примеров в браузере не связывается с Telegram.
- Не было зафиксировано никаких внешних запросов, неудачных HTTP-запросов или ошибок JavaScript.
Скриншоты с настольных компьютеров и мобильных устройств, а также квитанции находятся в разделах
test-results/site/иtest-results/docs-site/. Указатель документации, примеры сообщений и хэшей, макет «witness», диаграмма доставки и карта расследования были проверены в размерах для настольных компьютеров и мобильных устройств. - Проверка публикации прошла успешно для 282 файлов из открытых источников и 1 426 локальных ссылок на документацию. Проверка Ruff прошла успешно для модифицированных инструментов и тестов сайта на языке Python.
docs/HOW-IT-WORKS.mdпредоставляет сопутствующий документ в формате Markdown на GitHub с диаграммами Mermaid и формулами.docs/INVESTIGATION.mdохватывает весь объем учетной записи, сбор истории по каждому чату, профили пользователей, перекрестные ссылки между чатами, временные шкалы и передачу проверенных дел. Его этапы и ограничения были проверены на соответствие текущим требованиям в отношении сферы охвата, сбора данных, досье, экспорта, средства проверки и кода панели. Работа рендеринга на GitHub не проверялась.
Данная проверка касается локального веб-сайта/документации. Она не включает оценку реального состояния Telegram, не подтверждает развёртывание хостируемых страниц, успешность удалённого CI или индексацию в поисковых системах. Ознакомьтесь с процедурой публикации и примечаниями к метаданным веб-сайта.