Releases: suzcuaru/ZPUI
Release list
ZPUI v1.8.1
Добавлено
- «Что нового» по конкретной версии. Клик по номеру версии в карточках
обновлений открывает release notes именно этой версии (а не последней,
как раньше): клик по 1.7 показывает изменения 1.7. Для Запрета текст
адаптируется под приложение: заголовки, списки с вложенностью, жирный
текст, код и ссылки («Full Changelog» становится кликабельным).
По-версионные запросы кэшируются на 5 минут.
Исправлено
- Подсказка игрового фильтра обрезалась слева — тултип теперь раскрывается
вправо от подписи. - Вкладка «Монитор»: панель устройств снова тянется до самого низа вкладки,
а карточка «отключена» (экономный режим) центрируется по видимой области,
а не по высоте контента. - Запрос release notes версии Zapret с GitHub: теги Flowseal хранятся без
префикса «v» — из-за принудительного «v» запрос мог отдавать 404
(затрагивало и откат версий с GitHub-источника). - Выключение прокси из боковой панели могло «зависать» анимацией: остановка
Telegram-моста ждала активные клиентские соединения, которые не закрывались.
Теперь Stop закрывает их принудительно — кнопка всегда возвращается из
состояния загрузки. - Отчёт: добавлена секция «Known Operators» — все известные операторы из базы
(не только текущий), с датами первой/последней активности и отметкой
активного.
ZPUI v1.8.0
Добавлено
- Выбор версии Запрета (откат). В карточке Zapret в разделе «Обновления»
появилась кнопка «Версии»: список доступных версий с Яндекс.Диска и GitHub
(версия, источник, дата, отметка текущей). Любую версию можно скачать и
установить вручную — инструмент отката на нужную версию. Установка идёт
через стандартный механизм (бэкап списков и стратегии, восстановление при
сбое). - Экономный режим. Новый блок в «Настройках»: главный тумблер «Экономный
режим» — пока он выключен, экономия не активируется ни при каких условиях.
Внутри — два ползунка:
— Степень экономии: Низкая (фоновые интервалы ×5: трафик 2с→10с,
ISP 60с→300с, устройства 60с→300с, sync-маяк 15с→75с, снапшоты БД
5с→25с; проверка доступности раз в 30 минут; опрос интерфейса 2с→5с;
отключение декоративных анимаций) → Средняя (+ пауза мониторинга трафика
и записи статистики) → Максимальная (+ пауза списка устройств,
определения оператора и синхронизации);
— Срабатывать при заряде (только на ноутбуках, по умолчанию «От АКБ»):
режим активен всё время работы от батареи и выключается на зарядке;
«Всегда» — активен постоянно; либо порог 10–50% с шагом 5% — включается
при падении заряда до порога. На ПК без батареи ползунка нет, а включение
режима активирует его сразу. Степень экономии по умолчанию — «Низкая».
Автозапуск Xbox DNS теперь включён по умолчанию у новых установок и одноразово включается после обновления со старых версий (дальше тумблер полностью в распоряжении пользователя). - Автоподбор чинит DNS-подмену YouTube. После применения лучшей
стратегии (кроме проверки одной стратегии по ПКМ) приложение проверяет
YouTube на уровне DNS: при обнаружении подмены адресов автоматически
включается Xbox DNS, сбрасывается DNS-кеш и проверка повторяется —
в ходе подбора видна разница «без DNS» / «с Xbox DNS».
Замер на ноутбуке: фоновая нагрузка CPU приложения снижается в ~3,5 раза
(2,5% → 0,7% ядра). Работа Запрета, прокси и DNS не затрагивается; всё
восстанавливается автоматически при выходе из режима. - Индикатор экономного режима в боковой панели (значок батареи): виден
всегда, пока режим активен — в том числе после закрытия и повторного
открытия окна; состояние вычисляет бэкенд (/api/status), подсказка
показывает, приостановлены ли фоновые сервисы. Клик открывает настройки. - Индикация YouTube и подсказка Xbox DNS. Отдельная проверка
YouTube-доменов на уровне DNS: системный резолвер сравнивается с DoH, а
полученные адреса проверяются TLS-рукопожатием. При обнаружении подмены
(системный DNS отдаёт нерабочие адреса youtube/googlevideo — типично для
новых версий Запрета) на дашборде появляется баннер с кнопкой «Включить
Xbox DNS» и приходит уведомление. В общий % доступности и автоподбор
проверка не вмешивается. - Потребление ресурсов приложения в отчёте. При каждом запуске
приложение самоизмеряется в течение 30 секунд (CPU, рабочая память,
потоки, дескрипторы, число процессов-помощников) и пишет результат в БД.
В диагностическом отчёте — секция «Application Resource Usage» со
средней загрузкой CPU, пиком памяти и таблицей последних запусков
(машиночитаемый агрегат — в JSON-снапшоте). Хранение данных — 7 дней. - Проверка конкретного сайта — лупа в боковой панели (уже была) и баннер
YouTube на дашборде при обнаружении DNS-подмены: «Включить Xbox DNS». - Кнопка «Версии» у карточки запрета и модалка списка версий доступны в обеих
локализациях (ru/en).
Изменено
-
Новая лицензия и установщик. ZPUI переходит с MIT на проприетарную
лицензию (EULA): свободное личное использование, строгие правила —
запрещены распространение, модификация, декомпиляция и перепродажа;
полный отказ Правообладателя от гарантий и любой ответственности.
Установщик требует доскроллить текст соглашения до конца (кнопка «Далее»
листает его постранично, проскочить нельзя) и поставить галочку согласия.
Автор — SuzucaRU (github.com/suzcuaru). -
Справка обновлена: новая вкладка «Дашборд», вкладка «О приложении»
(версия, автор, все ссылки из боковой панели справки, условия лицензии) —
боковая панель справки стала компактнее. -
Настройки уведомлений убраны — все уведомления теперь всегда включены.
Ранее выключенные в конфиге флаги игнорируются. Блок «Уведомления Windows»
(включая кнопку тест-уведомления) удалён из настроек. -
Панель настроек скомпонована без прокрутки под фиксированное окно:
настройки объединены в парные ряды — «Автозапуск с Windows» + «Запуск
свёрнутым», «Сворачивать в трей» + «Проверка обновлений», «Автозапуск
прокси» + «Автозапуск Xbox DNS», «Экономный режим» + «Авто при батарее». -
Оптимизация энергопотребления — нативные API вместо процессов.
Мониторинг трафика больше не спавнит PowerShell каждые 2 секунды (было
~30 процессов/мин в фоне 24/7): счётчики читаются через iphlpapi
(GetIfEntry2Ex) в процессе. Статус службы Запрета опрашивается напрямую
через SCM вместоsc query, PID winws находится через Toolhelp32Snapshot
вместоtasklist, стратегия службы — через registry вместоreg query,
имя хоста — через os.Hostname вместо процессаhostname. Фоновый расход
CPU/батареи снижен на порядок. -
Опрос ISP-оператора растянут с 30 до 60 секунд, HTTP-клиент использует
keep-alive (раньше каждые 30с выполнялся полный TCP+TLS-handshake к
внешнему серверу). -
Диагностический отчёт: таблица ресурсов по умолчанию показывает только
10 худших ресурсов (полный список —report.exe -full); добавлены секции
«Findings (auto)» (автоматически найденные аномалии), «Application
Resource Usage» (потребление ресурсов приложением) и машиночитаемый
JSON-снапшот — отчёт одинаково удобен людям и ИИ. -
Карточка Запрета на дашборде подписана латиницей — «Zapret»; справка
в разделе «Решение проблем» дополнена сценарием «Сайты открываются, а
видео YouTube — нет» (включение Xbox DNS).
Исправлено
- Модуль мониторинга трафика показывал терабайты и «скорость в гигабайтах».
Причина: суммировались накопленные с момента загрузки Windows счётчики всех
подряд интерфейсов (включая WAN-miniports и vSwitch-ы WSL/Hyper-V), а при
сбросе счётчиков интерфейса (сон, VPN, перезапуск WSL) разность уходила в
астрономию. Теперь трафик считается по per-interface дельтам за сессию
приложения, считаются только активные адаптеры с физическим адресом, сброс
счётчиков не даёт ложных скачков. - Автоподбор теперь не теряет результаты. Результат каждой стратегии
пишется в БД сразу после её проверки, включая неуспешные попытки
(таймаут применения, служба не запустилась, «стратегия не применилась»,
таймаут проверки ресурсов) — раньше такие стратегии вообще не попадали
в базу. Если оператор связи ещё не определён (нет сети), результаты
сохраняются под fallback-оператором и автоматически мигрируют реальному
оператору, когда тот определится. - «Пропустить» в первом запуске теперь отменяет автоподбор и на бэкенде.
Раньше кнопка лишь скрывала прогресс в UI, а приложение продолжало
перебирать все стратегии до 15 минут и в конце применяло лучшую.
Устранена также гонка отмены, из-за которой два подбора могли идти
одновременно, а второй нельзя было отменить. - Кнопка «Скачать» в обновлениях сбрасывается после установки. После
успешной установки Запрета закэшированное состояние «доступно обновление»
сбрасывается и инициируется свежая проверка — кнопка больше не висит при
уже новой версии. - Диагностический отчёт: версии из правильных источников. Версия ZPUI в
шапке берётся из config.json (versions.json протухал и показывал старую
версию); версия Запрета читается из service.bat (LOCAL_VERSION) — раньше
шапка всегда писала «not found». - Таблица версий компонентов больше не «замораживается»: при неудачной
проверке обновляется установленная версия и сбрасывается удалённая
(раньше строка zpui навсегда оставалась со старыми значениями). Удалённые
из продукта модули (например, security) вычищаются из таблицы при старте. - GitHub-проверка обновлений Запрета кэшируется: повторные проверки не
тратят лимит API, при 403 (rate limit) используется последний успешный
результат — в логах больше нет шквала «github вернул статус 403». - VACUUM логов выполняется только если при чистке реально удалялись записи —
ежечасное переписывание файла БД впустую прекращено.
Техническое
- Новые пакеты:
internal/power(состояние экономного режима,
GetSystemPowerStatus),internal/ytcheck(детект DNS-подмены YouTube). blockcheck.BulkCheckCtx— проверка ресурсов учитывает отмену контекста.- Примитивы updater для списка/отката версий:
YandexListZapretVersions,
YandexZapretZipForVersion,ListZapretGitHubReleases,
FetchZapretGitHubReleaseByTag; в БД —UpsertComponentInstalled,
InvalidateComponentRemote,DeleteComponentVersion,
MigrateUnknownOperatorStrategies. - API:
GET /api/updates/zapret-available-versions,
POST /api/updates/download-zapret-version,GET /api/youtube/status,
POST /api/xbox-dns/toggle.
ZPUI v1.7.0
Добавлено
- Новая система обновлений — без «Центра обновлений». Отдельный модуль
selfupdate.exe(Центр обновлений) удалён: проверка, скачивание и
установка обновлений теперь целиком внутри основного приложения. - Обновление ZPUI через установщик. Приложение скачивает только
NSIS-установщикZPUI-Setup-<версия>-win32.exe(исключительно с
Яндекс.Диска, с проверкой SHA-256): после нажатия «Установить» приложение
закрывается и запускается установщик — самый простой и надёжный способ,
без подмен файлов «на живую». - Zapret обновляется с двух источников. Версия проверяется и на
Яндекс.Диске, и на GitHub (Flowseal/zapret-discord-youtube); скачивание
идёт оттуда, где версия новее (при равенстве — Яндекс.Диск). Если скачать
с основного источника не удалось — автоматический фолбэк на Яндекс.Диск.
Источник отображается в модалке скачивания. - Пункты обновлений в трее. При наличии новой версии в меню трея
появляются «Обновление ZPUI — скачать» и «Обновление запрета — скачать»;
клик открывает окно приложения с модалкой обновления и сразу начинает
скачивание. - Модалка обновления с прогрессом. Скачивание и установка идут в
модальном окне, которое нельзя закрыть до завершения операции (без
крестика, Escape и клика по фону): прогресс-бар, объём, этапы установки.
После скачивания появляется кнопка «Установить» — модалку можно закрыть и
вернуться к установке позже из карточек в настройках. - Уведомление о новой версии в интерфейсе теперь предлагает кнопку
«Установить», которая сразу открывает модалку обновления и начинает
скачивание. - Выбор режима при ручном автоподборе. Если запустить автоподбор из
бокового меню, а по каким-то стратегиям уже есть результаты прошлых
проверок, приложение спросит: выполнить полный подбор или проверить
только непроверенные стратегии. Если данных ещё нет — полный подбор
запускается сразу.
Изменено
-
Окно автоподбора. Индикатор проверки стратегии заменён на кольцо
(как у тумблеров); после проверки стратегия показывает доступность в
процентах с цветовой оценкой (зелёный/жёлтый/красный — как на карточках
стратегий). Спиннер больше не зависает рядом с уже проверенной
стратегией при применении лучшей. -
Проверка/подбор стратегий переработан. Проверка одной стратегии (ПКМ)
— отдельная модалка с этапами (применение → проверка), кнопкой отмены и
результатом; тест отправляется строго один раз, данные пишутся в БД только
по проверяемой стратегии, исходная возвращается. Автоподбор — live-список
стратегий по ходу проверки, отмена возвращает исходную стратегию (не
применяет лучшую из частично проверенных). Health-монитор и ISP-монитор
не вмешиваются во время теста. Логи хранятся 7 дней (было 30). -
Панель обновлений в настройках переделана. Карточки ZPUI и Zapret
показывают версии с кнопками «Скачать»/«Установить» (открывают ту же
модалку); кнопки «Открыть Центр обновлений» больше нет. Клик по версии
по-прежнему открывает «что нового»; Telegram Proxy — «Обновляется с ZPUI». -
Раскладка Яндекс.Диска упрощена. В корне публичной папки хранятся
только установщикиZPUI-Setup-*-win32.exe(без папок версий и zip),
checksums.sha256(теперь включает и хеш установщика) и
components/report/. Zapret хранится как раньше — папки
«Zapret <версия>». Версия ZPUI определяется по именам файлов установщиков. -
Проверка обновлений по-прежнему выполняется только при запуске
(по тумблеру «проверка обновлений»), но её результат кэшируется — трей и
карточки настроек читают состояние без повторных сетевых запросов.
Исправлено
- Цикл трея больше не выполняет сетевой запрос каждые 5 секунд для проверки
обновлений — состояние берётся из кэша стартовой проверки.
Техническое
- Модуль
cmd/selfupdate(Wails mini-app с собственным фронтендом) удалён
из репозитория и изbuild.bat; ключselfupdateубран изversions.txt
и генерируемогоversions.json. - Новый файл
internal/updater/setup.go:CheckZPUISetupUpdate
(разбор имён установщиков в публичной папке Яндекс.Диска) и
DownloadZPUISetup(прогресс + сверка SHA-256 сchecksums.sha256). internal/zapret/updater.go:CheckForUpdatesстал двух-источниковым
(Яндекс + GitHub API,FetchZapretGitHubRelease), URL второго источника
сохраняется вFallbackURLsдля автоматического фолбэка при скачивании.internal/app:update_checker.go(опрос черезselfupdate.exe --check)
заменён наupdate_state.go(кэш флагов + синхронизация версий в БД без
selfupdate);app_api_updates.goпереписан —DownloadZPUISetup,
DownloadZapretUpdate,ApplyZPUISetup(детached-помощник PowerShell
Wait-Process→ запуск установщика после выхода приложения),
ApplyZapretPackage,GetUpdateState; событияupdate:download,
update:download-done,update:install,update:install-done,
update:open-modal.- Трей: интерфейс
Controller—HasZPUIUpdateAvailable/
HasZapretUpdateAvailable/StartTrayUpdate(component)вместо
HasUpdateAvailable/OpenUpdateCenter. build.bat: шаг сборки selfupdate удалён; хеш установщика добавляется в
checksums.sha256; версия повышена до 1.7.0 (обновление механизма
обновлений).
ZPUI v1.6.1
Добавлено
-
Telegram MTProto-прокси — новый встроенный модуль (Go-native, без
внешних процессов) на вкладке «Прокси»:- Локальный MTProto-мост для Telegram Desktop через WebSocket (TLS) к
Telegram DC — ускоряет загрузку Telegram и обходит проблемы соединения. - Жёстко привязан к SOCKS5: единая кнопка запуска, общий автозапуск и
восстановление состояния — отдельно Telegram-мост не включается; в
панели Telegram состояние отображается пилюлей. - Подключение одной кнопкой: ссылка
tg://proxy?...(копирование) и
кнопка «Подключить в Telegram» — открывает Telegram с предложением
добавить прокси, с анимацией загрузки; активна только при работающем
прокси. Секрет генерируется автоматически, есть регенерация. - Доступ из локальной сети: при привязке на
0.0.0.0мост принимает
устройства ЛВС (правило брандмауэра добавляется автоматически), ссылка
для подключения строится по IP этого ПК. - Мини-веб-интерфейс на порту моста (
http://<ip-пк>:1443): карточка
с кнопкой «Подключить в Telegram», secret и живой статистикой
(авто-обновление) — открывается с телефона/планшета в браузере; ссылка
автоматически указывает на IP этого ПК. - Fake TLS (ee-ссылка): маскировка трафика под HTTPS к указанному
домену; «чужие» клиенты прозрачно переправляются на домен маскировки. - Резервные каналы при блокировке прямого WS: Cloudflare Worker
домены (пользовательские) → CF-проксированные домены (встроенный пул +
ежечасное обновление с GitHub) → прямое TCP-подключение к DC; каналы
получают cooldown (CF 10 мин, TCP 15 мин) — без шторма повторов. - Пул WSS-соединений на каждый DC (быстрое установление сессий) с
авто-ротацией по возрасту и SNI-фронтингом при таймаутах. - PROXY protocol v1 для работы за nginx/haproxy.
- Учёт подключений: активные сессии и трафик считаются по всем
каналам (прямой WS, CF, TCP-fallback), per-device — на вкладке «Сеть»
и во вкладке «Прокси» устройство показывается одной карточкой с
числом SOCKS- и Telegram-подключений; карточка прокси на дашборде
помечает активный TG-мост (· TG). - Логи в отдельном бакете «Telegram» просмотрщика логов; карточка
«Telegram Proxy» в центре обновлений (обновляется вместе с ZPUI);
данные (статус/порт/соединения/трафик + настройки) в отчёте.
- Локальный MTProto-мост для Telegram Desktop через WebSocket (TLS) к
-
Вкладка «Прокси» переработана под компактную вёрстку без прокрутки
(рассчитана на окно 960×640): две панели — SOCKS5 (устройства + настройки
сеткой 2×2) и Telegram (подключение + настройки + статистика); компактные
шапки с тумблерами и живыми счётчиками; список устройств скроллится только
внутри себя. -
Синхронизация: перенос списков zapret и исключений мониторинга.
Помимо оператора, стратегий и данных автоподбора теперь синхронизируются
все списки (системные и пользовательские) иskip-resources.txt; при
изменении стратегии/списков движок автоматически перезапускается. -
Синхронизация всегда включена: тумблер выключения убран — модуль
стартует при каждом запуске приложения. -
Кнопка отчёта в меню логов: формирует MD-отчёт и сохраняет его в папку
«Загрузки» с уведомлением о пути. -
Заметки о релизе по клику на версию: в настройках версии ZPUI и Zapret
в карточках обновлений кликабельны — открывают окно с описанием релиза
(версия, дата, список изменений, ссылка на GitHub). -
Подключение телефона к Telegram-прокси по QR. Кнопка «Подключить
телефон» во вкладке «Прокси» открывает QR-код с адресом веб-страницы моста
(http://<ip-пк>:<порт>): телефон сканирует код камерой — открывается
страница с кнопкой «Подключить в Telegram», после нажатия Telegram
открывается и добавляет MTProto-прокси с этого ПК. Если доступ из
локальной сети выключен, модалка предложит включить его одной кнопкой
(мост перезапускается на лету, правило брандмауэра добавляется
автоматически). -
Центр обновлений обновляется вместе с приложением. Архив обновления
ZPUI содержит иselfupdate.exe: центр устанавливает новую версию себя,
продолжая работать на старой, а после установки предлагает перезапустить
себя одной кнопкой (приложение перезапускается автоматически). -
Ссылки на Телеграм-канал и группу. На веб-странице Telegram-прокси
(куда ведёт QR для телефона) появился блок с кнопками канала и группы
приложения; адреса читаются изtelegram_links.txtрядом с программой —
правки подхватываются без перезапуска. Ссылки также добавлены в боковую
панель вкладки «Справка». -
Версия Telegram-прокси указывается в
versions.txt(tgproxy=) и
попадает вversions.json; сборка инжектит её в приложение. -
Отчёт: детальный блок Telegram-прокси — состояние и версия, соединения
и трафик, разбивка по каналам (прямые WS: успехи/отказы/ошибки рукопожатия,
CF-proxy/worker, TCP-fallback, SNI-фронтинг, маскировка, пул WS) для
трассировки отказов, снимок настроек моста и последние 30 записей логов
модуля. -
Окно «Отчёт готов» после формирования (вкладка «Отчёт» и кнопка отчёта
в меню логов): путь к сохранённому файлу и кнопки «Открыть файл» и
«Отправить в Телеграм» — файл отчёта копируется в буфер обмена (вставка
Ctrl+V в чате прикрепляет его) и сразу открывается чат группы поддержки.
Изменено
-
Синхронизация: сопряжение стало взаимным. Раньше устройство сохранял
только тот, кто вводил PIN: на втором ПК первое не отображалось в
«Сопряжено». Теперь отдающая сторона тоже запоминает инициатора (маяк
передаётся в заголовке запроса) — оба ПК видят друг друга сразу после
первой синхронизации. Discovery дополнительно шлёт маяки направленными
broadcast-адресами подсетей — надёжнее на роутерах, не ретранслирующих
глобальный 255.255.255.255 между Wi-Fi и Ethernet. -
Вкладка «Справка» полностью переписана: вместо инструкции по установке —
полный путеводитель по приложению (главный экран, Запрет со стратегиями
и службой, Прокси включая Telegram и подключение телефона по QR, Монитор,
Xbox DNS, Синхронизация, Отчёты и логи, Настройки, решение проблем);
в боковой панели — ссылки на Телеграм-канал и группу поддержки. -
Стратегии Запрета блокируются, пока движок выключен (в т.ч. стартует
или перезапускается) или идёт переключение стратегии — над сеткой
показывается подсказка. -
Восстановление Запрета — модальное окно по центру приложения (вместо
тоста в углу), без возможности закрыть, с живым списком этапов. При неудаче
приложение перезапускается (с сохранением настроек) и пробует ещё раз;
если и после перезапуска не удалось — окно ошибки с отчётом и просьбой
обратиться в поддержку. -
Удалён модуль безопасности (
security.exe): кнопка запуска и вкладка
«Безопасность» в просмотрщике логов, обновление модуля, сборка и запись в
установщике. Модуль не нёс пользовательской ценности и генерировал
ложные срабатывания антивирусов. -
Убрана концепция веток dev/stable. Приложение работает с одной линейкой
версий: удалены DEV-бейджи и предупреждения в настройках, страница
предупреждения в установщике, фильтрация источников обновлений по ветке. -
Убраны «срезы ошибок» (файлы-слепки логов вокруг ошибки) и их просмотр
в меню логов: дублировали сами логи, замедляя запись ERROR-сообщений. -
Кнопка очистки логов: без всплывающей подсказки, при наведении подсвечивается
красным (опасное действие). -
Автозапуск без запроса прав администратора. Схема снова на задаче
Планировщика заданий (ONLOGON+RunLevel HIGHEST): при входе в
систему ZPUI стартует уже с правами администратора — UAC-запрос не
появляется. Состояние тумблера читается только из системы
(schtasks /Query /XML, языконезависимо) и больше не хранится в
config.json; прежняя Run-key схема автоматически мигрируется на задачу. -
Вкладка «Синхронизация» переработана в стиле приложения: hero с
тумблером, секции «Сопряжено» (доверенные устройства — даже offline, с
датой/временем последней синхронизации и мгновенной синхронизацией без
PIN) и «Доступные устройства» (сопряжение с PIN). -
Подсказки боковой панели: у верхних кнопок навигации убраны, у
нижних сервисных кнопок отображаются сбоку. -
Убрана подсказка у кнопки «Открыть центр обновлений» в настройках.
Исправлено
-
Окно не открывалось при ручном запуске/перезапуске. Настройка «Запускать
свёрнутым» прятала окно при каждом запуске; теперь скрытый старт — только
у автозапуска Windows, а сама настройка управляет аргументами задачи
автозапуска (пересоздаётся сразу при переключении). Ручной запуск всегда
открывает окно. -
Экран первого запуска: прогресс-бар смещался текстом этапов. Появление
служебных сообщений (этапы проверки службы, лог установки) меняло высоту
блока и сдвигало название и прогресс-бар. Геометрия карточки зафиксирована:
название и бар всегда на месте, текст живёт в отдельной прокручиваемой
области под ними. -
Мерцание окон консоли при формировании отчёта: системные команды
(версия Windows, модель процессора) запускались в видимом окне — теперь
скрыто. -
Окно «Отчёт готов»: группа поддержки открывается сразу в приложении
Telegram (tg://-протокол), а не в браузере. -
Telegram не мог подключиться к встроенному прокси. Детектор HTTP-
запросов (для мини-веб-интерфейса на порту моста) буферизовал первые байты
MTProto-handshake, и мост вечно ждал «недостающие» байты, разрывая
соединение по таймауту. Дополнительно выверены по оригиналу (tg-ws-proxy):
прямые WSS-подключения идут только на WS-шлюз DC2/DC4 (остальные DC —
сразу резервные каналы), снят 10-секундный deadline с клиентского
соединения на время установки канала. -
UPD-E001: обновление ZPUI не скачивалось с Яндекс.Диска. Скачивание
искало несуществующийzpui-win64.zip; теперь скачивается папка версии
целиком как zip (внутри ZPUI.exe, центр обновлений, отчёты, компоненты).
Версии модулей ищутся в новой раскладке/<версия>/components/,
целостность проверяется по checksums из самого архива (раньше нов...
ZPUI v1.6.0
Добавлено
-
Telegram MTProto-прокси — новый встроенный модуль (Go-native, без
внешних процессов) на вкладке «Прокси»:- Локальный MTProto-мост для Telegram Desktop через WebSocket (TLS) к
Telegram DC — ускоряет загрузку Telegram и обходит проблемы соединения. - Подключение одной кнопкой: ссылка
tg://proxy?...(копирование) и
кнопка «Подключить в Telegram» — открывает Telegram с предложением
добавить прокси, с анимацией загрузки; активна только при работающем
прокси. Секрет генерируется автоматически, есть регенерация. - Работает параллельно с SOCKS5-прокси на отдельном порту (по умолчанию
1443), свой автозапуск. - Fake TLS (ee-ссылка): маскировка трафика под HTTPS к указанному
домену; «чужие» клиенты прозрачно переправляются на домен маскировки. - Резервные каналы при блокировке прямого WS: Cloudflare Worker
домены (пользовательские) → CF-проксированные домены (встроенный пул +
ежечасное обновление с GitHub) → прямое TCP-подключение к DC. - Пул WSS-соединений на каждый DC (быстрое установление сессий) с
авто-ротацией по возрасту и SNI-фронтингом при таймаутах. - PROXY protocol v1 для работы за nginx/haproxy.
- Разбивка MTProto-потока на пакеты (abridged/intermediate/padded) для
корректных WS-фреймов. - Живая статистика: соединения, трафик, WS успех/отказы, резервные
каналы, попадания в пул. - Логи в отдельном бакете «Telegram» просмотрщика логов; карточка
«Telegram Proxy» в центре обновлений (обновляется вместе с ZPUI);
данные (статус/порт/соединения/трафик + настройки) в отчёте.
- Локальный MTProto-мост для Telegram Desktop через WebSocket (TLS) к
-
Вкладка «Прокси» переработана под компактную вёрстку без прокрутки
(рассчитана на окно 960×640): две панели — SOCKS5 (устройства + настройки
сеткой 2×2) и Telegram (подключение + настройки + статистика); компактные
шапки с тумблерами и живыми счётчиками; список устройств скроллится только
внутри себя. -
Синхронизация: перенос списков zapret и исключений мониторинга.
Помимо оператора, стратегий и данных автоподбора теперь синхронизируются
все списки (системные и пользовательские) иskip-resources.txt; при
изменении стратегии/списков движок автоматически перезапускается. -
Кнопка отчёта в меню логов (правее кнопки безопасности): формирует
MD-отчёт и сохраняет его в папку «Загрузки» с уведомлением о пути.
Изменено
- Автозапуск без запроса прав администратора. Схема снова на задаче
Планировщика заданий (ONLOGON+RunLevel HIGHEST): при входе в
систему ZPUI стартует уже с правами администратора — UAC-запрос не
появляется. Состояние тумблера читается только из системы
(schtasks /Query /XML, языконезависимо) и больше не хранится в
config.json; прежняя Run-key схема автоматически мигрируется на задачу. - Вкладка «Синхронизация» переработана в стиле приложения: hero с
тумблером, секции «Сопряжено» (доверенные устройства — даже offline, с
датой/временем последней синхронизации и мгновенной синхронизацией без
PIN) и «Доступные устройства» (сопряжение с PIN). - Подсказки боковой панели: у верхних кнопок навигации убраны, у
нижних сервисных кнопок отображаются сбоку. - Убрана подсказка у кнопки «Открыть центр обновлений» в настройках.
Исправлено
- Модуль безопасности (и все модули с окном прогресса): окно появлялось
и мгновенно закрывалось. Причина — функцииCreateFontIndirectWи
AddFontMemResourceExбыли привязаны к неверным DLL (user32/kernel32);
обе живут в gdi32. После фиксаsecurity.exeотрабатывает все проверки
полностью. Дополнительно оконная горутина защищена recover. - Синхронизация «ничего не меняла»: применённые данные теперь реально
влияют на систему (рестарт движка, запись списков), а момент последней
синхронизации сохраняется и отображается. - Telegram отклонял ссылку прокси как некорректную: ссылка открывалась
черезcmd /c start, а cmd.exe без кавычек обрезал URL на первом&—
Telegram получал адрес без порта и секрета. Ссылка теперь открывается
черезrundll32 url.dll,FileProtocolHandler(как и все внешние URL). - Все резервные CF-домены падали с «bad handshake»: WS-клиент не
отправлял обязательный субпротокол TelegramSec-WebSocket-Protocol: binary(приведён к оригинальному клиенту; TLS-верификация отключена,
как в upstream — шифрование обеспечивает MTProto). - Шторм логов при недоступности Telegram: fallback-каналы получили
cooldown (CF per-DC 10 мин, прямой TCP per-IP 15 мин) — вместо десятков
WARN на каждое соединение выводится одна сводка; отдельные неудачи
доменов перенесены на DEBUG. - Тумблеры прокси откликаются медленно: после клика спиннер держится
до фактической смены состояния (быстрый опрос 0.7 с вместо ожидания
общего 5-секундного поллинга) — одинаково быстро и включение, и
выключение. - Вкладка «Telegram» уходила за экран в полосе выбора логов: полоса
вкладок стала компактнее и получила горизонтальную прокрутку — колесом
мыши (вертикальное вращение конвертируется в горизонталь) и тачпадом.
Техническое
- Новый пакет
internal/tgproxy(MTProto-obfuscation handshake AES-CTR,
ре-шифрование, WSS-клиент, пул, fallback-цепочка, Fake TLS, статистика);
биндингиapp_api_tgproxy.go; конфигTelegramProxyConfig
(порт/bind/secret/fake_tls/fallback_cf/cf_worker_domains/pool_size). - Тумблер автозапуска:
GetAutostartStatusбез поляconfig, фронтенд
использует только live-статус;syncAutostartSystem()— миграция. - Логи: новый бакет
tgproxy_logs(+ вкладка «Telegram»). - Отчёт:
RuntimeState/ConfigSnapshotрасширены полями Telegram-прокси. - Из установщика/сборки удалена мёртвая папка
mods/(остатки
нереализованной плагинной системы). - Модуль Telegram-прокси: версия 1.1.0 (обновляется вместе с ядром).
- Обновлены AGENTS.md и документация в
Документы/.