zapret-kvn/xray_fluent/application
Repository files (latest commit first)
Filename Latest commit message Latest commit date
loop-uh d301e8a49a Hysteria: рабочий сервер не заменяется из-за случайной ошибки; подписки — гонка маршрутов
Инцидент 01.10.2026 (диагностика 0.8.4): простаивавшая QUIC-сессия Hysteria2
оборвалась («timeout: no recent network activity»), официальный клиент
переподключился в ту же секунду, но приложение по одной строке лога запустило
восстановление: остановило туннель, взяло первый по порядку сервер (он
отвечал «authentication error, HTTP 301») и осталось отключённым до ручного
подключения. Пользователь видел это как «интернет отваливается и не встаёт».

Hysteria
- Ошибка транспорта в логе работающего туннеля — повод для проверки, а не
  приговор (HysteriaManager._begin_tunnel_check). Сервер остаётся, если он
  снова авторизовал клиента («connected to server») или HTTPS-проба через
  relay прошла; failure публикуется только после двух проваленных волн.
  Ошибки безопасности (TLS/pin/auth/obfs) по-прежнему публикуются сразу.
- Если замена всё же понадобилась и резервный сервер отказал, он исключается
  (auth/TLS — на час, сеть — на 5 минут), а приложение возвращается на
  выбранный пользователем сервер вместо отключения. То же при отсутствии
  резервного сервера. Ручное действие отменяет отложенный возврат.
- Кандидат с is_alive=False в замену не берётся.

Подписки
- fetch_subscription: прямой маршрут и VPN-прокси идут гонкой (фора прямого
  1 с) под общим дедлайном 30 с вместо последовательных попыток со сложением
  таймаутов; чтение тела ограничено тем же сроком. Ответ сервера напрямую
  остаётся окончательным, отказ через прокси ждёт прямой маршрут 3 с.
- Статус «Обновление…» не зависает: любая ошибка применения результата
  завершает обновление; в колонке виден этап и секунды; обновления пишутся
  в лог; выход из приложения отменяет загрузку.

Потоки
- Пинг — долгоживущая служба PingService без QThread; короткие QThread-воркеры
  живут в корзине до своего finished (worker_keeper). Убирает вылет
  «QThread: Destroyed while thread is still running».

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 19:20:34 +03:00
..
__init__.py Prepare v0.4.78: server list rework, faster switching, subscriptions 2026-08-11 22:10:53 +03:00
async_steps.py Приёмка без зависаний: сайдкары Hysteria/AWG и защищённый Zapret-путь 2026-09-26 13:32:51 +03:00
auto_switch_service.py Смена сервера всегда называет источник: [select] в логе, «Следующий» без фокуса 2026-09-28 21:35:12 +03:00
config.py фикс открытого прокси 2026-04-07 20:49:48 +03:00
config_documents.py Prepare v0.4.78: server list rework, faster switching, subscriptions 2026-08-11 22:10:53 +03:00
config_profiles.py Update config_profiles.py 2026-04-07 21:11:24 +03:00
connection_service.py Zapret: модуль и страница переписаны — проще, понятнее, строже 2026-09-28 20:53:25 +03:00
controller.py Hysteria: рабочий сервер не заменяется из-за случайной ошибки; подписки — гонка маршрутов 2026-10-01 19:20:34 +03:00
node_runtime_service.py fix: preserve interactive server table and bound DNS fallback readiness 2026-09-06 02:07:48 +03:00
node_service.py Смена сервера всегда называет источник: [select] в логе, «Следующий» без фокуса 2026-09-28 21:35:12 +03:00
nodes.py Смена сервера всегда называет источник: [select] в логе, «Следующий» без фокуса 2026-09-28 21:35:12 +03:00
outbound_pool_service.py feat: use official Amnezia transport and organize runtime modules 2026-09-06 00:14:08 +03:00
port_allocator.py sing-box extended 2026-07-11 21:01:15 +03:00
profile_service.py Маршрутизация: структурный редактор sing-box по схеме ядра 2026-09-26 20:30:17 +03:00
protocol_core.py feat: use official Amnezia transport and organize runtime modules 2026-09-06 00:14:08 +03:00
rotation_service.py feat: use official Amnezia transport and organize runtime modules 2026-09-06 00:14:08 +03:00
route_check.py Простое правило: регистр программ, слово без точки, защитные правила, «Применить» 2026-09-27 13:14:18 +03:00
runtime.py Hysteria: рабочий сервер не заменяется из-за случайной ошибки; подписки — гонка маршрутов 2026-10-01 19:20:34 +03:00
runtime_introspection.py wireguard 2026-07-11 23:17:09 +03:00
runtime_security.py feat: use official Amnezia transport and organize runtime modules 2026-09-06 00:14:08 +03:00
runtime_services.py Hysteria: рабочий сервер не заменяется из-за случайной ошибки; подписки — гонка маршрутов 2026-10-01 19:20:34 +03:00
selection_source.py Смена сервера всегда называет источник: [select] в логе, «Следующий» без фокуса 2026-09-28 21:35:12 +03:00
server_bypass.py Zapret: модуль и страница переписаны — проще, понятнее, строже 2026-09-28 20:53:25 +03:00
session_state.py feat: use official Amnezia transport and organize runtime modules 2026-09-06 00:14:08 +03:00
signature_service.py Переходы подключения целиком шагами через координатор, без зависаний GUI 2026-09-26 13:27:04 +03:00
singbox_config_recovery.py Automatically recover wrapped sing-box configs 2026-07-25 18:34:27 +03:00
singbox_editor_check.py Маршрутизация: структурный редактор sing-box по схеме ядра 2026-09-26 20:30:17 +03:00
smart_switch_service.py Hysteria: рабочий сервер не заменяется из-за случайной ошибки; подписки — гонка маршрутов 2026-10-01 19:20:34 +03:00
startup_service.py Zapret: модуль и страница переписаны — проще, понятнее, строже 2026-09-28 20:53:25 +03:00
subscription_service.py feat: use official Amnezia transport and organize runtime modules 2026-09-06 00:14:08 +03:00
template_sync.py Маршрутизация: структурный редактор sing-box по схеме ядра 2026-09-26 20:30:17 +03:00
transition_engine.py fix: unify transport transitions and restore direct Russian services 2026-09-06 01:10:35 +03:00
update_service.py Hysteria: рабочий сервер не заменяется из-за случайной ошибки; подписки — гонка маршрутов 2026-10-01 19:20:34 +03:00
worker_keeper.py Hysteria: рабочий сервер не заменяется из-за случайной ошибки; подписки — гонка маршрутов 2026-10-01 19:20:34 +03:00
worker_service.py Hysteria: рабочий сервер не заменяется из-за случайной ошибки; подписки — гонка маршрутов 2026-10-01 19:20:34 +03:00
xray_runtime_service.py feat: use official Amnezia transport and organize runtime modules 2026-09-06 00:14:08 +03:00