zapret-kvn/xray_fluent/ui
Repository files (latest commit first)
Filename Latest commit message Latest commit date
loop-uh f9971d5a1f
Some checks failed
Windows project source guards / test (push) Failing after 31s
Zapret: модуль и страница переписаны — проще, понятнее, строже
Движок разложен на части с одной задачей каждая:
- endpoint: вид сервера (TCP / QUIC / WireGuard), хосты, порты, DNS;
- strategies: каталоги winws2 и правило для выбранного сервера;
- presets: файлы пресетов;
- command: сборка командной строки winws2 (чистая функция);
- manager: процесс winws2 с одним входом apply(план) и ревизиями —
  готовность только по started процесса нужной ревизии, таймаут 5 с.
Склейка с подключением (~450 строк в контроллере, два наслоенных
механизма «UDP-защиты» и «профиля сервера», кэш и прогрев DNS) заменена
шлюзом application/server_bypass.py. Сохранены: DNS только в воркере,
остановка туннеля перед сменой правила (кроме восстановления Hysteria),
забор перед стартом ядра, fail-closed при потере winws2 (теперь и по
таймауту перезапуска), маскировка IP сервера в логах до старта ядра;
адреса серверов пула изучаются в фоне после подключения.

Поведение:
- у QUIC и WireGuard теперь свои стратегии; ключ zapret_target совместим,
  старые сборки после отката читают udp_* как раньше;
- в каталогах вернулись 82 составные стратегии с ветками --payload
  (валидатор принимал только --lua-desync и молча их выбрасывал);
- смена пресета под защищённой сессией идёт через переход: туннель
  останавливается, winws2 перезапускается, VPN подключается снова;
- пропавший файл выбранного пресета — откат к Default, а не отказ;
- правка работающего пресета перезапускает его; переименование больше
  не оставляет копию, занятое имя отклоняется;
- настройки Zapret не откатываются при сохранении страницы «Настройки».

Интерфейс: карточка состояния (работает/нет, пресет, одна кнопка,
автозапуск), выбранный VPN-сервер с живым правилом, три строки видов
серверов с подстраницей стратегии, пресеты — отдельной подстраницей.
Объяснение — в окне «Как это б#&^ь работает?» с иллюстрацией.
2026-09-28 20:53:25 +03:00
..
singbox Zapret: модуль и страница переписаны — проще, понятнее, строже 2026-09-28 20:53:25 +03:00
__init__.py UI: кружок переключателя всегда совпадает с состоянием 2026-09-26 12:19:36 +03:00
about_page.py Prepare v0.4.79: unified theming, responsive layout, real flags 2026-08-11 23:21:28 +03:00
adaptive_buttons.py Кнопки: подпись уходит в подсказку, когда ряду не хватает места 2026-09-26 18:25:16 +03:00
base_page.py Prepare v0.4.79: unified theming, responsive layout, real flags 2026-08-11 23:21:28 +03:00
bulk_edit_page.py feat: add subscriptions and core-native hot switching 2026-08-12 00:57:49 +03:00
configs_page.py Простое правило: регистр программ, слово без точки, защитные правила, «Применить» 2026-09-27 13:14:18 +03:00
connection_orb.py Панель: текст слева, сцена справа, подключение — только кнопкой питания 2026-09-26 21:51:54 +03:00
dashboard_page.py Панель: текст слева, сцена справа, подключение — только кнопкой питания 2026-09-26 21:51:54 +03:00
dashboard_widgets.py Панель: плитки VPN/Прокси показывают выбор, пока идёт переход 2026-09-26 19:13:57 +03:00
deferred_page.py feat: use official Amnezia transport and organize runtime modules 2026-09-06 00:14:08 +03:00
detail_page.py feat: add subscriptions and core-native hot switching 2026-08-12 00:57:49 +03:00
elided_label.py Маршрутизация: подпись активной копии в одну строку с многоточием 2026-09-26 20:55:59 +03:00
file_manager.py fix: unify transport transitions and restore direct Russian services 2026-09-06 01:10:35 +03:00
fluent_dialog.py Prepare v0.4.79: unified theming, responsive layout, real flags 2026-08-11 23:21:28 +03:00
fluent_fixes.py Кнопки: подпись уходит в подсказку, когда ряду не хватает места 2026-09-26 18:25:16 +03:00
history_page.py Панель: сфера подключения, плитки трафика, русские переключатели 2026-09-26 13:18:28 +03:00
lock_dialog.py Prepare v0.4.79: unified theming, responsive layout, real flags 2026-08-11 23:21:28 +03:00
logs_page.py Кнопки: подпись уходит в подсказку, когда ряду не хватает места 2026-09-26 18:25:16 +03:00
main_window.py Zapret: модуль и страница переписаны — проще, понятнее, строже 2026-09-28 20:53:25 +03:00
motion.py Панель: новый главный экран, запоминание бокового меню, детерминированный выход 2026-09-26 16:17:42 +03:00
node_detail_widget.py fix: preserve interactive server table and bound DNS fallback readiness 2026-09-06 02:07:48 +03:00
node_edit_page.py fix: preserve interactive server table and bound DNS fallback readiness 2026-09-06 02:07:48 +03:00
nodes_page.py Таблица серверов: одна плоская модель и лёгкая отрисовка 2026-09-26 13:18:28 +03:00
nodes_table_model.py Тема: позитивные статусы в цвете акцента 2026-09-26 15:16:04 +03:00
nodes_view.py Таблица серверов: одна плоская модель и лёгкая отрисовка 2026-09-26 13:18:28 +03:00
pending_state.py Системный прокси: переключатель показывает выбор, а не старое состояние 2026-09-26 18:56:54 +03:00
preset_edit_widget.py Zapret: модуль и страница переписаны — проще, понятнее, строже 2026-09-28 20:53:25 +03:00
privacy.py feat: use official Amnezia transport and organize runtime modules 2026-09-06 00:14:08 +03:00
qt_lifecycle.py Маршрутизация: структурный редактор sing-box по схеме ядра 2026-09-26 20:30:17 +03:00
routing_page.py feat: use official Amnezia transport and organize runtime modules 2026-09-06 00:14:08 +03:00
settings_page.py Обновление приложения ставится само в фоне, без окна и без петли 2026-09-27 16:23:12 +03:00
strategy_picker.py Zapret: модуль и страница переписаны — проще, понятнее, строже 2026-09-28 20:53:25 +03:00
subscriptions_page.py Подписки: переключатель автообновления не показывает непринятый выбор 2026-09-26 19:15:56 +03:00
theme.py Тема: позитивные статусы в цвете акцента 2026-09-26 15:16:04 +03:00
traffic_graph.py Панель: новый главный экран, запоминание бокового меню, детерминированный выход 2026-09-26 16:17:42 +03:00
updates_page.py Тема: позитивные статусы в цвете акцента 2026-09-26 15:16:04 +03:00
window_geometry.py feat: use official Amnezia transport and organize runtime modules 2026-09-06 00:14:08 +03:00
zapret_page.py Zapret: модуль и страница переписаны — проще, понятнее, строже 2026-09-28 20:53:25 +03:00