💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord
🔔 Новый коммит в youtubediscord/zapret
📝 Merge pull request #473 from youtubediscord/codex/remove-template-origin-preset-legacy
👤 Автор: loop-uh
📅 Дата: 17.05.2026 13:50:39
🔗 SHA:
📊 Статистика:
➕ Добавлено: 34930 строк
➖ Удалено: 32732 строк
📝 Всего изменений: 67662
📁 Изменено файлов: 769
✏️
+4 -0
Добавилось:
🗑️
+0 -73
Удалилось:
... и еще 47 строк
🗑️
+0 -352
Удалилось:
... и еще 224 строк
🗑️
+0 -1206
Удалилось:
... и еще 784 строк
🆕
+1 -0
Добавилось:
🆕
+132 -0
Добавилось:
... и еще 99 строк
... и еще 763 файлов
... и еще 759 файлов
🔗 Открыть на GitHub
🔔 Новый коммит в youtubediscord/zapret
📝 Merge pull request #473 from youtubediscord/codex/remove-template-origin-preset-legacy
👤 Автор: loop-uh
📅 Дата: 17.05.2026 13:50:39
🔗 SHA:
6b0bf34📊 Статистика:
➕ Добавлено: 34930 строк
➖ Удалено: 32732 строк
📝 Всего изменений: 67662
📁 Изменено файлов: 769
✏️
.gitignore+4 -0
Добавилось:
# Runtime user state
/settings/
/logs
🗑️
docs/gui_architecture_contract.md+0 -73
Удалилось:
# GUI Architecture Contract
Дата фиксации: 2026-04-10
Этот документ описывает не пожелания, а архитектурный контракт GUI, который надо поддерживать при...
## Direct preset flow
- `direct_zapret1` использует выбранный source preset как единственный источник истины.
- `direct_zapret2` использует выбранный source preset как единственный источник истины.
- Канонический путь выбора direct-пресета: `PresetSelectionService` -> `DirectFlowCoordinator` ->...
- Канонический корень пресетов: `presets/` рядом с программой.
- Пользовательские direct-пресеты лежат только в `presets/presets_v1` и `presets/presets_v2`.
- Встроенные direct-пресеты лежат только в `presets/presets_v1_builtin` и `presets/presets_v2_bui...
... и еще 47 строк
🗑️
docs/gui_controller_rename_plan.md+0 -352
Удалилось:
# GUI Controller Rename Plan
Дата фиксации: 2026-04-11
Этот документ описывает не конечный архитектурный контракт, а безопасный план миграции для слоя `...
Обновление состояния: 2026-04-12
На дату обновления план остаётся актуальным по стратегии, но уже не полностью совпадает со старой...
- naming-first стратегия остаётся канонической;
- часть folder-move этапа уже фактически произошла;
- дальше нельзя опираться на старую картину `src/ui/pages/...` как на единственный живой UI-слой;
- план нужно читать как живой маршрут миграции, а не как замороженный список старых путей.
## Зачем нужен план
... и еще 224 строк
🗑️
docs/gui_fluent_cutover_plan.md+0 -1206
Удалилось:
# GUI Fluent Cutover Plan
Дата фиксации: 2026-04-12
Этот документ описывает не абстрактные идеи, а целевой план полной замены текущего `main_window*`...
Документ нужен как передаваемый контекст для следующего ИИ или следующей сессии. Его задача:
- зафиксировать, что именно мы считаем проблемой;
- зафиксировать, что именно мы сохраняем;
- зафиксировать, что именно подлежит полному удалению;
- дать один непротиворечивый план cutover без fallback и без второго источника истины.
## 1. Зачем вообще нужен этот cutover
Проблема проекта не в том, что GUI "не на Fluent". Наоборот, проект уже глубоко использует `qflue...
... и еще 784 строк
🆕
src/about/__init__.py+1 -0
Добавилось:
"""Функции и планы страниц About/Support."""
🆕
src/about/plans.py+132 -0
Добавилось:
from __future__ import annotations
import os
import subprocess
import webbrowser
from dataclasses import dataclass
from log.log import log
@dataclass(slots=True)
class AboutActionResult:
ok: bool
message: str
... и еще 99 строк
... и еще 763 файлов
... и еще 759 файлов
🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord
🔔 Новый коммит в youtubediscord/zapret
📝 Сделал. Ветка осталась `main`, чужие уже существовавшие изменения не трогал. Что изменил: - Добавил общий ограничитель строк: [src/ui/log_limits.py](/mnt/g/Privacy/zapretgui/public_zapretgui/src/ui/log_limits.py:7). - Поставил лимиты на поля логов: обычные логи, ошибки, вывод `winws`, диагностика, BlockCheck, Telegram Proxy, Orchestra. - Ограничил очередь логов Telegram Proxy: [proxy_logger.py](/mnt/g/Privacy/zapretgui/public_zapretgui/src/telegram_proxy/proxy_logger.py:81). - Ограничил очередь логов Orchestra до обработки интерфейсом: [page.py](/mnt/g/Privacy/zapretgui/public_zapretgui/src/orchestra/ui/page.py:414). - Добавил тесты: [test_ui_log_limits.py](/mnt/g/Privacy/zapretgui/public_zapretgui/tests/test_ui_log_limits.py:1). Проверил: - `PYTHONPATH=src python -m unittest discover -s tests` — 28 тестов прошли. - `PYTHONPATH=src python -m app.architecture_checks` — проверка архитектуры прошла. - `py_compile` по изменённым файлам — без ошибок. Теперь старые строки в логовых окнах будут автоматически выкидываться, а в памяти останется только последний ограниченный хвост.
👤 Автор: loop-uh
📅 Дата: 17.05.2026 14:35:03
🔗 SHA:
📊 Статистика:
➕ Добавлено: 857 строк
➖ Удалено: 152 строк
📝 Всего изменений: 1009
📁 Изменено файлов: 33
✏️
+5 -1
Удалилось:
Добавилось:
✏️
+2 -1
Удалилось:
Добавилось:
✏️
+2 -0
Добавилось:
✏️
+2 -0
Добавилось:
✏️
+2 -0
Добавилось:
✏️
+2 -0
Добавилось:
✏️
+9 -0
Добавилось:
... и еще 26 файлов
... и еще 23 файлов
🔗 Открыть на GitHub
🔔 Новый коммит в youtubediscord/zapret
📝 Сделал. Ветка осталась `main`, чужие уже существовавшие изменения не трогал. Что изменил: - Добавил общий ограничитель строк: [src/ui/log_limits.py](/mnt/g/Privacy/zapretgui/public_zapretgui/src/ui/log_limits.py:7). - Поставил лимиты на поля логов: обычные логи, ошибки, вывод `winws`, диагностика, BlockCheck, Telegram Proxy, Orchestra. - Ограничил очередь логов Telegram Proxy: [proxy_logger.py](/mnt/g/Privacy/zapretgui/public_zapretgui/src/telegram_proxy/proxy_logger.py:81). - Ограничил очередь логов Orchestra до обработки интерфейсом: [page.py](/mnt/g/Privacy/zapretgui/public_zapretgui/src/orchestra/ui/page.py:414). - Добавил тесты: [test_ui_log_limits.py](/mnt/g/Privacy/zapretgui/public_zapretgui/tests/test_ui_log_limits.py:1). Проверил: - `PYTHONPATH=src python -m unittest discover -s tests` — 28 тестов прошли. - `PYTHONPATH=src python -m app.architecture_checks` — проверка архитектуры прошла. - `py_compile` по изменённым файлам — без ошибок. Теперь старые строки в логовых окнах будут автоматически выкидываться, а в памяти останется только последний ограниченный хвост.
👤 Автор: loop-uh
📅 Дата: 17.05.2026 14:35:03
🔗 SHA:
b05e720📊 Статистика:
➕ Добавлено: 857 строк
➖ Удалено: 152 строк
📝 Всего изменений: 1009
📁 Изменено файлов: 33
✏️
src/app/ARCHITECTURE.md+5 -1
Удалилось:
-> ApplicationController создаёт AppRuntime
Добавилось:
-> ApplicationController создаёт AppRuntime
WindowPageActions создаётся только после `window_notifications_setup.py`.
Причина простая: действия страниц используют `window_notification_center.notify`,
а центр уведомлений появляется именно на этапе `window_notifications_setup.py`.
✏️
src/app/architecture_checks.py+2 -1
Удалилось:
r"removed_placeholder_profiles|_OUT_RANGE_UNSIGNED_SIMPLE_RE)\b"
Добавилось:
r"removed_placeholder_profiles|_OUT_RANGE_UNSIGNED_SIMPLE_RE|"
r"sanitize_presets_before_launch|_ensure_lua_init_lines|strip_strategy_tags)\b"
✏️
src/blockcheck/ui/log_build.py+2 -0
Добавилось:
from ui.log_limits import BLOCKCHECK_LOG_VIEW_MAX_LINES, apply_text_line_limit
apply_text_line_limit(log_edit, BLOCKCHECK_LOG_VIEW_MAX_LINES)
✏️
src/blockcheck/ui/strategy_scan_page_build.py+2 -0
Добавилось:
from ui.log_limits import BLOCKCHECK_LOG_VIEW_MAX_LINES, apply_text_line_limit
apply_text_line_limit(log_edit, BLOCKCHECK_LOG_VIEW_MAX_LINES)
✏️
src/diagnostics/ui/build.py+2 -0
Добавилось:
from ui.log_limits import DIAGNOSTICS_LOG_VIEW_MAX_LINES, apply_text_line_limit
apply_text_line_limit(result_text, DIAGNOSTICS_LOG_VIEW_MAX_LINES)
✏️
src/log/log.py+2 -0
Добавилось:
from ui.log_limits import MAIN_LOG_VIEW_MAX_LINES, apply_text_line_limit
apply_text_line_limit(self.log_text, MAIN_LOG_VIEW_MAX_LINES)
✏️
src/log/ui/logs_build.py+9 -0
Добавилось:
from ui.log_limits import (
ERROR_LOG_VIEW_MAX_LINES,
MAIN_LOG_VIEW_MAX_LINES,
WINWS_OUTPUT_MAX_LINES,
apply_text_line_limit,
)
apply_text_line_limit(log_text, MAIN_LOG_VIEW_MAX_LINES)
apply_text_line_limit(errors_text, ERROR_LOG_VIEW_MAX_LINES)
apply_text_line_limit(winws_text, WINWS_OUTPUT_MAX_LINES)
... и еще 26 файлов
... и еще 23 файлов
🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord
🔔 Новый коммит в youtubediscord/zapret
📝 Причина: post-startup слой после запуска вызывает DNS-задачу через: application_post_startup.py (line 20) python features.dns.apply_dns_on_startup_async Но в DnsFeature такого поля не было. Сам DNS-метод уже существовал в dns.public, просто фасад DNS его не отдавал наружу. Поэтому exe падал с: text AttributeError: 'DnsFeature' object has no attribute 'apply_dns_on_startup_async' Исправил в dns.py (line 8): добавил apply_dns_on_startup_async в DnsFeature и связал его с dns_public.apply_dns_on_startup_async.
👤 Автор: loop-uh
📅 Дата: 17.05.2026 14:40:51
🔗 SHA:
📊 Статистика:
➕ Добавлено: 9 строк
➖ Удалено: 0 строк
📝 Всего изменений: 9
📁 Изменено файлов: 2
✏️
+2 -0
Добавилось:
✏️
+7 -0
Добавилось:
🔗 Открыть на GitHub
🔔 Новый коммит в youtubediscord/zapret
📝 Причина: post-startup слой после запуска вызывает DNS-задачу через: application_post_startup.py (line 20) python features.dns.apply_dns_on_startup_async Но в DnsFeature такого поля не было. Сам DNS-метод уже существовал в dns.public, просто фасад DNS его не отдавал наружу. Поэтому exe падал с: text AttributeError: 'DnsFeature' object has no attribute 'apply_dns_on_startup_async' Исправил в dns.py (line 8): добавил apply_dns_on_startup_async в DnsFeature и связал его с dns_public.apply_dns_on_startup_async.
👤 Автор: loop-uh
📅 Дата: 17.05.2026 14:40:51
🔗 SHA:
dc35db1📊 Статистика:
➕ Добавлено: 9 строк
➖ Удалено: 0 строк
📝 Всего изменений: 9
📁 Изменено файлов: 2
✏️
src/app/feature_facades/dns.py+2 -0
Добавилось:
apply_dns_on_startup_async: Callable
apply_dns_on_startup_async=dns_public.apply_dns_on_startup_async,
✏️
tests/test_main_startup_contract.py+7 -0
Добавилось:
def test_dns_feature_exposes_startup_dns_entrypoint(self) -> None:
from app.feature_facades.dns import build_dns_feature
dns_feature = build_dns_feature()
self.assertTrue(callable(dns_feature.apply_dns_on_startup_async))
🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord
🔔 Новый коммит в youtubediscord/zapret
📝 Причина: post-startup слой после запуска вызывает DNS-задачу через: application_post_startup.py (line 20) python features.dns.apply_dns_on_startup_async Но в DnsFeature такого поля не было. Сам DNS-метод уже существовал в dns.public, просто фасад DNS его не отдавал наружу. Поэтому exe падал с: text AttributeError: 'DnsFeature' object has no attribute 'apply_dns_on_startup_async' Исправил в dns.py (line 8): добавил apply_dns_on_startup_async в DnsFeature и связал его с dns_public.apply_dns_on_startup_async.
👤 Автор: loop-uh
🔗 SHA:
📊 Статистика: 2 files changed, 9 insertions(+)
📁 Изменённые файлы:
✏️
✏️
🔗 Открыть на GitHub
🔔 Новый коммит в youtubediscord/zapret
📝 Причина: post-startup слой после запуска вызывает DNS-задачу через: application_post_startup.py (line 20) python features.dns.apply_dns_on_startup_async Но в DnsFeature такого поля не было. Сам DNS-метод уже существовал в dns.public, просто фасад DNS его не отдавал наружу. Поэтому exe падал с: text AttributeError: 'DnsFeature' object has no attribute 'apply_dns_on_startup_async' Исправил в dns.py (line 8): добавил apply_dns_on_startup_async в DnsFeature и связал его с dns_public.apply_dns_on_startup_async.
👤 Автор: loop-uh
🔗 SHA:
dc35db1📊 Статистика: 2 files changed, 9 insertions(+)
📁 Изменённые файлы:
✏️
src/app/feature_facades/dns.py✏️
tests/test_main_startup_contract.py🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord
🔔 Новый коммит в youtubediscord/zapret
📝 В profile_setup_page.py (line 44) теперь главное место экрана — большой список готовых стратегий. Выпадающий список убран. Большие блоки “выбранная стратегия” и “что записано в профиль” убраны с главного экрана. Как теперь устроено: в главном окне profile сверху только компактные настройки; ниже вкладка Готовые стратегии с большим списком; активная стратегия выделяется строкой как в “Мои пресеты”: мягкая акцентная подложка + маркер слева; при наведении строка подсвечивается; жирного текста нет; границ между строками нет; строки компактные, высота 34px; при клике по уже активной стратегии открывается её подстраница; внутри подстраницы стратегии есть “Оценка стратегии”; “Что записано в профиль” и аргументы стратегии теперь живут на подстранице стратегии, а не в главном окне.
👤 Автор: loop-uh
🔗 SHA:
📊 Статистика: 10 files changed, 560 insertions(+), 50 deletions(-)
📁 Изменённые файлы:
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
🔗 Открыть на GitHub
🔔 Новый коммит в youtubediscord/zapret
📝 В profile_setup_page.py (line 44) теперь главное место экрана — большой список готовых стратегий. Выпадающий список убран. Большие блоки “выбранная стратегия” и “что записано в профиль” убраны с главного экрана. Как теперь устроено: в главном окне profile сверху только компактные настройки; ниже вкладка Готовые стратегии с большим списком; активная стратегия выделяется строкой как в “Мои пресеты”: мягкая акцентная подложка + маркер слева; при наведении строка подсвечивается; жирного текста нет; границ между строками нет; строки компактные, высота 34px; при клике по уже активной стратегии открывается её подстраница; внутри подстраницы стратегии есть “Оценка стратегии”; “Что записано в профиль” и аргументы стратегии теперь живут на подстранице стратегии, а не в главном окне.
👤 Автор: loop-uh
🔗 SHA:
4921bc0📊 Статистика: 10 files changed, 560 insertions(+), 50 deletions(-)
📁 Изменённые файлы:
✏️
src/main/window_notifications_setup.py✏️
src/main/window_page_actions.py✏️
src/main/window_startup.py✏️
src/main/window_startup_setup.py✏️
src/presets/builtin/winws2/Default v1 (game filter).txt✏️
src/profile/service.py✏️
src/profile/state.py✏️
src/profile/ui/profile_setup_page.py✏️
src/ui/widgets/win11_controls.py✏️
tests/test_main_startup_contract.py🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord
🔔 Новый коммит в youtubediscord/zapret
📝 профиль
👤 Автор: loop-uh
🔗 SHA:
📊 Статистика: 15 files changed, 635 insertions(+), 557 deletions(-)
📁 Изменённые файлы:
✏️
✏️
✏️
✏️
✏️
🗑️
✏️
🆕
✏️
✏️
🆕
🆕
🆕
🆕
🆕
🔗 Открыть на GitHub
🔔 Новый коммит в youtubediscord/zapret
📝 профиль
👤 Автор: loop-uh
🔗 SHA:
90d0260📊 Статистика: 15 files changed, 635 insertions(+), 557 deletions(-)
📁 Изменённые файлы:
✏️
src/app/feature_facades/profile.py✏️
src/profile/commands.py✏️
src/profile/models.py✏️
src/profile/service.py✏️
src/profile/state.py🗑️
src/profile/templates/all_profiles.txt✏️
src/profile/ui/preset_setup_page.py🆕
src/profile/ui/profile_display_items.py✏️
src/profile/ui/profile_item.py✏️
src/profile/ui/profiles_list.py🆕
tests/test_build_resource_layout.py🆕
tests/test_profile_display_items.py🆕
tests/test_profile_filter_kind_switch.py🆕
tests/test_profile_list_payload.py🆕
tests/test_profile_strategy_resolution.py🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord
🔔 Новый коммит в youtubediscord/zapret
📝 Сделал большую проверку и поправил основное. Причина “всё выключено” была не одна: в живой установке выбран preset , там реально есть только 2 общих profile, а YouTube/Discord строки идут из каталога возможных profile и поэтому показывались выключенными. Плюс эти реальные profile попадали в группу «Прочее» внизу, поэтому сверху казалось, что выключено вообще всё. Что поправил: - добавил верхнюю группу , туда теперь попадают реальные profile выбранного preset; - открытие страницы profile больше не строит весь список заново; - оценки готовых стратегий теперь читаются из одним проходом, а не сотни раз; - убрал лишнюю передачу , она нигде не использовалась; - добавил тесты на первый запуск: пустые настройки и битый выбранный preset оба выбирают настроенный default preset. Основные файлы: - [service.py](/mnt/g/Privacy/zapretgui/public_zapretgui/src/profile/service.py) - [strategy_state.py](/mnt/g/Privacy/zapretgui/public_zapretgui/src/profile/strategy_state.py) - [profile_display_items.py](/mnt/g/Privacy/zapretgui/public_zapretgui/src/profile/ui/profile_display_items.py) - [profiles_list.py](/mnt/g/Privacy/zapretgui/public_zapretgui/src/profile/ui/profiles_list.py) - [test_preset_selection_defaults.py](/mnt/g/Privacy/zapretgui/public_zapretgui/tests/test_preset_selection_defaults.py) Проверил: - теста прошли; - прошёл; - прошёл; - прошёл; - на живом сборка detail-данных для profile с стратегиями заняла примерно . В On branch main
👤 Автор: loop-uh
🔗 SHA:
📊 Статистика: 16 files changed, 613 insertions(+), 58 deletions(-)
📁 Изменённые файлы:
✏️
✏️
🆕
✏️
✏️
✏️
✏️
✏️
✏️
✏️
🆕
✏️
🆕
✏️
✏️
🆕
🔗 Открыть на GitHub
🔔 Новый коммит в youtubediscord/zapret
📝 Сделал большую проверку и поправил основное. Причина “всё выключено” была не одна: в живой установке выбран preset , там реально есть только 2 общих profile, а YouTube/Discord строки идут из каталога возможных profile и поэтому показывались выключенными. Плюс эти реальные profile попадали в группу «Прочее» внизу, поэтому сверху казалось, что выключено вообще всё. Что поправил: - добавил верхнюю группу , туда теперь попадают реальные profile выбранного preset; - открытие страницы profile больше не строит весь список заново; - оценки готовых стратегий теперь читаются из одним проходом, а не сотни раз; - убрал лишнюю передачу , она нигде не использовалась; - добавил тесты на первый запуск: пустые настройки и битый выбранный preset оба выбирают настроенный default preset. Основные файлы: - [service.py](/mnt/g/Privacy/zapretgui/public_zapretgui/src/profile/service.py) - [strategy_state.py](/mnt/g/Privacy/zapretgui/public_zapretgui/src/profile/strategy_state.py) - [profile_display_items.py](/mnt/g/Privacy/zapretgui/public_zapretgui/src/profile/ui/profile_display_items.py) - [profiles_list.py](/mnt/g/Privacy/zapretgui/public_zapretgui/src/profile/ui/profiles_list.py) - [test_preset_selection_defaults.py](/mnt/g/Privacy/zapretgui/public_zapretgui/tests/test_preset_selection_defaults.py) Проверил: - теста прошли; - прошёл; - прошёл; - прошёл; - на живом сборка detail-данных для profile с стратегиями заняла примерно . В On branch main
👤 Автор: loop-uh
🔗 SHA:
1c62a68📊 Статистика: 16 files changed, 613 insertions(+), 58 deletions(-)
📁 Изменённые файлы:
✏️
src/hosts/page_controller.py✏️
src/main/startup_coordinator.py🆕
src/profile/list_interpreter.py✏️
src/profile/models.py✏️
src/profile/service.py✏️
src/profile/state.py✏️
src/profile/strategy_state.py✏️
src/profile/ui/profile_display_items.py✏️
src/profile/ui/profiles_list.py✏️
src/winws_runtime/runtime/autostart.py🆕
tests/test_hosts_page_runtime.py✏️
tests/test_main_startup_contract.py🆕
tests/test_preset_selection_defaults.py✏️
tests/test_profile_display_items.py✏️
tests/test_profile_list_payload.py🆕
tests/test_startup_autostart.py🔗 Открыть на GitHub
🐳1
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord
🔔 Новый коммит в youtubediscord/zapret
📝 иконки
👤 Автор: loop-uh
🔗 SHA:
📊 Статистика: 19 files changed, 250 insertions(+), 67 deletions(-)
📁 Изменённые файлы:
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
🆕
✏️
🔗 Открыть на GitHub
🔔 Новый коммит в youtubediscord/zapret
📝 иконки
👤 Автор: loop-uh
🔗 SHA:
2c19204📊 Статистика: 19 files changed, 250 insertions(+), 67 deletions(-)
📁 Изменённые файлы:
✏️
requirements.txt✏️
src/blockcheck/ui/domains_build.py✏️
src/blockcheck/ui/log_build.py✏️
src/blockcheck/ui/sections_build.py✏️
src/blockcheck/ui/strategy_scan_page_build.py✏️
src/blockcheck/ui/strategy_scan_page_results_workflow.py✏️
src/diagnostics/ui/build.py✏️
src/donater/ui/build.py✏️
src/hosts/ui/sections_build.py✏️
src/log/commands.py✏️
src/profile/icons.py✏️
src/profile/ui/profile_icon.py✏️
src/profile/ui/profile_setup_page.py✏️
src/profile/ui/shell.py✏️
src/telegram_proxy/ui/proxy_runtime_workflow.py✏️
src/telegram_proxy/ui/settings_build.py✏️
src/ui/fluent_widgets.py🆕
tests/test_log_page_runtime.py✏️
tests/test_profile_icons.py🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord
🔔 Новый коммит в youtubediscord/zapret
📝 Keep interactive readiness outside startup coordinator
👤 Автор: loop-uh
🔗 SHA:
📊 Статистика: 4 files changed, 3 insertions(+), 16 deletions(-)
📁 Изменённые файлы:
✏️
✏️
✏️
✏️
🔗 Открыть на GitHub
🔔 Новый коммит в youtubediscord/zapret
📝 Keep interactive readiness outside startup coordinator
👤 Автор: loop-uh
🔗 SHA:
4481a91📊 Статистика: 4 files changed, 3 insertions(+), 16 deletions(-)
📁 Изменённые файлы:
✏️
src/main/startup_contract.md✏️
src/main/startup_coordinator.py✏️
src/main/window_startup_setup.py✏️
tests/test_main_startup_contract.py🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord
🔔 Новый коммит в youtubediscord/zapret
📝 Keep hidden mode sidebar items cached
👤 Автор: loop-uh
🔗 SHA:
📊 Статистика: 3 files changed, 59 insertions(+), 14 deletions(-)
📁 Изменённые файлы:
✏️
✏️
✏️
🔗 Открыть на GitHub
🔔 Новый коммит в youtubediscord/zapret
📝 Keep hidden mode sidebar items cached
👤 Автор: loop-uh
🔗 SHA:
8ebb949📊 Статистика: 3 files changed, 59 insertions(+), 14 deletions(-)
📁 Изменённые файлы:
✏️
src/ui/navigation/layout_plan.py✏️
src/ui/navigation/schema.py✏️
tests/test_preset_sidebar_navigation.py🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord
🔔 Новый коммит в youtubediscord/zapret
📝 Improve profile icon resolution
👤 Автор: loop-uh
🔗 SHA:
📊 Статистика: 2 files changed, 155 insertions(+), 28 deletions(-)
📁 Изменённые файлы:
✏️
✏️
🔗 Открыть на GitHub
🔔 Новый коммит в youtubediscord/zapret
📝 Improve profile icon resolution
👤 Автор: loop-uh
🔗 SHA:
4ae8332📊 Статистика: 2 files changed, 155 insertions(+), 28 deletions(-)
📁 Изменённые файлы:
✏️
src/profile/icons.py✏️
tests/test_profile_icons.py🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord
🔔 Новый коммит в youtubediscord/zapret
📝 Исправить перетаскивание профилей по папкам
👤 Автор: loop-uh
🔗 SHA:
📊 Статистика: 11 files changed, 378 insertions(+), 21 deletions(-)
📁 Изменённые файлы:
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
🆕
✏️
✏️
🔗 Открыть на GitHub
🔔 Новый коммит в youtubediscord/zapret
📝 Исправить перетаскивание профилей по папкам
👤 Автор: loop-uh
🔗 SHA:
335b3f2📊 Статистика: 11 files changed, 378 insertions(+), 21 deletions(-)
📁 Изменённые файлы:
✏️
src/app/feature_facades/profile.py✏️
src/profile/commands.py✏️
src/profile/folders.py✏️
src/profile/service.py✏️
src/profile/ui/preset_setup_page.py✏️
src/profile/ui/profile_list_delegate.py✏️
src/profile/ui/profile_list_view.py✏️
src/profile/ui/profiles_list.py🆕
tests/test_profile_drag_indicator.py✏️
tests/test_profile_folder_actions.py✏️
tests/test_profile_list_payload.py🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord
🔔 Новый коммит в youtubediscord/zapret
📝 presets
👤 Автор: loop-uh
🔗 SHA:
📊 Статистика: 36 files changed, 73 insertions(+), 53 deletions(-)
📁 Изменённые файлы:
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
🔗 Открыть на GitHub
🔔 Новый коммит в youtubediscord/zapret
📝 presets
👤 Автор: loop-uh
🔗 SHA:
46f69e1📊 Статистика: 36 files changed, 73 insertions(+), 53 deletions(-)
📁 Изменённые файлы:
✏️
src/presets/builtin/winws2/Dead by Daylight (game filter).txt✏️
src/presets/builtin/winws2/Dead by Daylight v2 (game filter).txt✏️
src/presets/builtin/winws2/Default multisplit_sni.txt✏️
src/presets/builtin/winws2/Default multisplit_stun.txt✏️
src/presets/builtin/winws2/Default v1 (game filter).txt✏️
src/presets/builtin/winws2/Default v2 (game filter).txt✏️
src/presets/builtin/winws2/Gaming (game filter).txt✏️
src/presets/builtin/winws2/Send + Syndata (game filter).txt✏️
src/presets/builtin/winws2/Syndata + MultiDisorder legacy (game filter).txt✏️
src/presets/builtin/winws2/Syndata + MultiDisorder legacy WoW (game filter).txt✏️
src/presets/builtin/winws2/Ultimate Main Riot + Valorant (game filter).txt✏️
src/presets/builtin/winws2/general ALT (game filter).txt✏️
src/presets/builtin/winws2/general ALT10 (game filter).txt✏️
src/presets/builtin/winws2/general ALT11 (game filter).txt✏️
src/presets/builtin/winws2/general ALT2 (game filter).txt✏️
src/presets/builtin/winws2/general ALT3 (game filter).txt✏️
src/presets/builtin/winws2/general ALT4 (game filter).txt✏️
src/presets/builtin/winws2/general ALT6 (game filter).txt✏️
src/presets/builtin/winws2/general ALT6.txt✏️
src/presets/builtin/winws2/general ALT7 (game filter).txt✏️
src/presets/builtin/winws2/general ALT8 (game filter).txt✏️
src/presets/builtin/winws2/general ALT9 1.9.4 (game filter).txt✏️
src/presets/builtin/winws2/general ALT9 1.9.5 (game filter).txt✏️
src/presets/builtin/winws2/general FAKE TLS AUTO (game filter).txt✏️
src/presets/builtin/winws2/general FAKE TLS AUTO ALT (game filter).txt✏️
src/presets/builtin/winws2/general FAKE TLS AUTO ALT2 (game filter).txt✏️
src/presets/builtin/winws2/general FAKE TLS AUTO ALT3 (game filter).txt✏️
src/presets/builtin/winws2/general FAKE TLS AUTO v2 (game filter).txt✏️
src/presets/builtin/winws2/general SIMPLE FAKE (game filter).txt✏️
src/presets/builtin/winws2/general SIMPLE FAKE ALT (game filter).txt✏️
src/presets/builtin/winws2/general SIMPLE FAKE ALT2 (game filter).txt✏️
"src/presets/builtin/winws2/\320\240\320\276\321\201\321\202\320\265\320\273\320\265\320\272\320\276\320\274.txt"✏️
src/profile/service.py✏️
src/profile/state.py✏️
src/profile/ui/profile_display_items.py✏️
tests/test_profile_display_items.py🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord
🔔 Новый коммит в youtubediscord/zapret
📝 clean
👤 Автор: loop-uh
🔗 SHA:
📊 Статистика: 9 files changed, 51 insertions(+), 40 deletions(-)
📁 Изменённые файлы:
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
🔗 Открыть на GitHub
🔔 Новый коммит в youtubediscord/zapret
📝 clean
👤 Автор: loop-uh
🔗 SHA:
e7f947b📊 Статистика: 9 files changed, 51 insertions(+), 40 deletions(-)
📁 Изменённые файлы:
✏️
src/folders/defaults.py✏️
src/presets/builtin/winws1/alt3_181.txt✏️
src/presets/builtin/winws1/alt3_182.txt✏️
src/presets/builtin/winws2/Default v1 (game filter).txt✏️
src/presets/builtin/winws2/Preset X v3 (game filter).txt✏️
src/profile/strategy_catalogs/winws2/tcp.txt✏️
src/profile/strategy_catalogs/winws2/udp.txt✏️
src/profile/strategy_catalogs/winws2/voice.txt✏️
tests/test_folders_library.py🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord
🔔 Новый коммит в youtubediscord/zapret
📝 Не перезагружать списки при drag профилей
👤 Автор: loop-uh
🔗 SHA:
📊 Статистика: 13 files changed, 456 insertions(+), 28 deletions(-)
📁 Изменённые файлы:
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
🔗 Открыть на GitHub
🔔 Новый коммит в youtubediscord/zapret
📝 Не перезагружать списки при drag профилей
👤 Автор: loop-uh
🔗 SHA:
b9803e3📊 Статистика: 13 files changed, 456 insertions(+), 28 deletions(-)
📁 Изменённые файлы:
✏️
src/app/feature_facades/profile.py✏️
src/presets/ui/common/user_presets_item_actions_workflow.py✏️
src/presets/ui/common/user_presets_page.py✏️
src/profile/commands.py✏️
src/profile/service.py✏️
src/profile/ui/preset_setup_page.py✏️
src/profile/ui/profile_list_model.py✏️
src/profile/ui/profile_list_view.py✏️
src/profile/ui/profiles_list.py✏️
src/ui/presets_menu/model.py✏️
tests/test_preset_drag_indicator.py✏️
tests/test_profile_drag_indicator.py✏️
tests/test_profile_setup_page_contract.py🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord
🔔 Новый коммит в youtubediscord/zapret
📝 Fix external actions Qt signal weakrefs
👤 Автор: loop-uh
🔗 SHA:
📊 Статистика: 2 files changed, 9 insertions(+), 1 deletion(-)
📁 Изменённые файлы:
✏️
✏️
🔗 Открыть на GitHub
🔔 Новый коммит в youtubediscord/zapret
📝 Fix external actions Qt signal weakrefs
👤 Автор: loop-uh
🔗 SHA:
019c7d9📊 Статистика: 2 files changed, 9 insertions(+), 1 deletion(-)
📁 Изменённые файлы:
✏️
src/app/feature_facades/external.py✏️
tests/test_main_startup_contract.py🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord
🔔 Новый коммит в youtubediscord/zapret
📝 Update Default v1 (game filter).txt
👤 Автор: loop-uh
🔗 SHA:
📊 Статистика: 1 file changed, 6 insertions(+), 5 deletions(-)
📁 Изменённые файлы:
✏️
🔗 Открыть на GitHub
🔔 Новый коммит в youtubediscord/zapret
📝 Update Default v1 (game filter).txt
👤 Автор: loop-uh
🔗 SHA:
87d7911📊 Статистика: 1 file changed, 6 insertions(+), 5 deletions(-)
📁 Изменённые файлы:
✏️
src/presets/builtin/winws2/Default v1 (game filter).txt🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord
🔔 Новый коммит в youtubediscord/zapret
📝 Update Default v1 (game filter).txt
👤 Автор: loop-uh
🔗 SHA:
📊 Статистика: 1 file changed, 11 insertions(+), 11 deletions(-)
📁 Изменённые файлы:
✏️
🔗 Открыть на GitHub
🔔 Новый коммит в youtubediscord/zapret
📝 Update Default v1 (game filter).txt
👤 Автор: loop-uh
🔗 SHA:
f8f520a📊 Статистика: 1 file changed, 11 insertions(+), 11 deletions(-)
📁 Изменённые файлы:
✏️
src/presets/builtin/winws2/Default v1 (game filter).txt🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord
🔔 Новый коммит в youtubediscord/zapret
📝 Cache preset profile icons
👤 Автор: loop-uh
🔗 SHA:
📊 Статистика: 2 files changed, 51 insertions(+), 5 deletions(-)
📁 Изменённые файлы:
✏️
✏️
🔗 Открыть на GitHub
🔔 Новый коммит в youtubediscord/zapret
📝 Cache preset profile icons
👤 Автор: loop-uh
🔗 SHA:
c853880📊 Статистика: 2 files changed, 51 insertions(+), 5 deletions(-)
📁 Изменённые файлы:
✏️
src/profile/ui/profile_icon.py✏️
tests/test_profile_setup_page_contract.py🔗 Открыть на GitHub
💥 ВСЕ НАШИ ССЫЛКИ: https://t.me/runetvpnyoutubediscord
🔔 Новый коммит в youtubediscord/zapret
📝 presets ipset
👤 Автор: loop-uh
🔗 SHA:
📊 Статистика: 19 files changed, 19 insertions(+), 19 deletions(-)
📁 Изменённые файлы:
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
✏️
🔗 Открыть на GitHub
🔔 Новый коммит в youtubediscord/zapret
📝 presets ipset
👤 Автор: loop-uh
🔗 SHA:
2f51d29📊 Статистика: 19 files changed, 19 insertions(+), 19 deletions(-)
📁 Изменённые файлы:
✏️
.github/ISSUE_TEMPLATE/hostlist_ipset_request.yml✏️
src/presets/builtin/winws1/2025_01_06.txt✏️
src/presets/builtin/winws1/YTDisBystro_31_1.txt✏️
src/presets/builtin/winws1/YTDisBystro_31_2.txt✏️
src/presets/builtin/winws1/YTDisBystro_31_3.txt✏️
src/presets/builtin/winws1/YTDisBystro_31_4.txt✏️
src/presets/builtin/winws1/YTDisBystro_31_5.txt✏️
src/presets/builtin/winws1/YTDisBystro_34_1.txt✏️
src/presets/builtin/winws1/YTDisBystro_34_2.txt✏️
src/presets/builtin/winws1/YTDisBystro_34_3.txt✏️
src/presets/builtin/winws1/YTDisBystro_34_4.txt✏️
src/presets/builtin/winws1/bystro292_1.txt✏️
src/presets/builtin/winws1/bystro292_2.txt✏️
src/presets/builtin/winws1/ulta2.txt✏️
src/presets/builtin/winws2/Default v3 (game filter).txt✏️
src/presets/builtin/winws2/Preset X v2 (game filter).txt✏️
src/presets/builtin/winws2/Preset X v3 (game filter).txt✏️
src/presets/builtin/winws2/Preset XY (game filter).txt✏️
src/presets/builtin/winws2/Syndata + MultiDisorder legacy WoW (game filter).txt🔗 Открыть на GitHub