zapret-kvn/xray_fluent/application
Repository files (latest commit first)
Filename Latest commit message Latest commit date
loop-uh 8d6a05b8d8 fix: resolve AWG uplink via GetBestInterfaceEx and stop false HTTPS warnings
v0.6.6 still failed AWG startup with "Physical interface for Amnezia UDP
transport not found" on the common Hyper-V vEthernet setup. Live probing on
real Windows showed the cause: GetAdaptersAddresses leaves FirstGatewayAddress
empty on working uplinks (Hyper-V vEthernet, some DHCP configs), so the
gateway-based selector rejected every adapter and returned None. (Interface
index, type, metric, addresses and DNS all parsed correctly — only the gateway
list was unreliable.)

Resolve the uplink with GetBestInterfaceEx instead: ask the OS which interface
reaches a destination — the authoritative default-route decision, independent
of the gateway list. Pass the AWG server's own IP so the physical uplink is
returned even while a tunnel holds the default route (WireGuard keeps a host
route to the server off the tunnel). The metric-based selector remains as a
fallback, now excluding tunnel/loopback by IfType instead of requiring a
gateway. Verified on real Windows: resolve_physical_uplink() -> (10, [dns]).

Also:
- Hysteria/Amnezia no longer raise a user-facing warning when the background
  DoH health probes (1.1.1.1/8.8.8.8/9.9.9.9) fail on a censored exit: the
  server handshake is already authenticated and real traffic flows, so the
  probe failure is a false alarm. The diagnostic log is kept.
- AWG startup failures now reach the info bar. Previously _on_amnezia_failure
  returned early when no amnezia session was committed yet, so a failed AWG
  start surfaced nothing to the user ("just exits").

892 unit tests pass (offscreen). End-to-end AWG connect still needs on-device
confirmation on the Hyper-V machine.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HAjvZYzPW2yTtToKJXGdbS
2026-09-14 13:13:16 +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 fix: unify transport transitions and restore direct Russian services 2026-09-06 01:10:35 +03:00
auto_switch_service.py feat: use official Amnezia transport and organize runtime modules 2026-09-06 00:14:08 +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 fix: unify transport transitions and restore direct Russian services 2026-09-06 01:10:35 +03:00
controller.py fix: resolve AWG uplink via GetBestInterfaceEx and stop false HTTPS warnings 2026-09-14 13:13:16 +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 fix: unify transport transitions and restore direct Russian services 2026-09-06 01:10:35 +03:00
nodes.py фикс открытого прокси 2026-04-07 20:49:48 +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 fix: refresh managed DNS and cache server table rendering 2026-09-06 14:51:07 +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
runtime.py Make server switching responsive 2026-08-05 00:06:32 +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 fix: unify transport transitions and restore direct Russian services 2026-09-06 01:10:35 +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 feat: use official Amnezia transport and organize runtime modules 2026-09-06 00:14:08 +03:00
singbox_config_recovery.py Automatically recover wrapped sing-box configs 2026-07-25 18:34:27 +03:00
startup_service.py feat: use official Amnezia transport and organize runtime modules 2026-09-06 00:14:08 +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 fix: refresh managed DNS and cache server table rendering 2026-09-06 14:51:07 +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 feat: use official Amnezia transport and organize runtime modules 2026-09-06 00:14:08 +03:00
worker_service.py fix: unify transport transitions and restore direct Russian services 2026-09-06 01:10:35 +03:00
xray_runtime_service.py feat: use official Amnezia transport and organize runtime modules 2026-09-06 00:14:08 +03:00
zapret_prewarm_service.py feat: use official Amnezia transport and organize runtime modules 2026-09-06 00:14:08 +03:00