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
..
data
release: prepare v0.4.82
2026-08-12 01:27:02 +03:00
fixtures
feat: unify Hysteria runtime recovery contract
2026-09-01 00:36:39 +03:00
test_amnezia_golden.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_amnezia_health.py
fix: resolve AWG uplink via GetBestInterfaceEx and stop false HTTPS warnings
2026-09-14 13:13:16 +03:00
test_amnezia_ownership.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_amnezia_uplink.py
fix: resolve AWG uplink via WinAPI and unify the sidecar relay seam
2026-09-14 11:54:30 +03:00
test_app_accent_theme.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_app_accent_widgets.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_app_dashboard_layout.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_app_detail_pages.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_app_fluent_dialog.py
feat: add subscriptions and core-native hot switching
2026-08-12 00:57:49 +03:00
test_app_icon.py
Update application icon ( #75 )
2026-07-15 20:43:44 +03:00
test_app_modern_ui.py
fix: preserve interactive server table and bound DNS fallback readiness
2026-09-06 02:07:48 +03:00
test_app_nodes_interaction.py
fix: refresh managed DNS and cache server table rendering
2026-09-06 14:51:07 +03:00
test_app_nodes_page_view.py
fix: refresh managed DNS and cache server table rendering
2026-09-06 14:51:07 +03:00
test_app_scrollable_page.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_app_settings_nodes_view.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_app_startup_subscription_settings.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_app_theme_repaint.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_app_theme_tokens.py
Prepare v0.4.79: unified theming, responsive layout, real flags
2026-08-11 23:21:28 +03:00
test_app_update_check.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_app_update_script.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_app_updater_urls.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_app_zapret_target_ui.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_async_steps.py
Prepare v0.4.78: server list rework, faster switching, subscriptions
2026-08-11 22:10:53 +03:00
test_auto_switch_dead_link.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_awg3_conf_import.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_background_workers.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_build_download_cache.py
build: reuse verified routing archives across dev and stable
2026-09-05 18:47:50 +03:00
test_championat_direct_templates.py
Синхронизировать клиентские маршруты с политикой VPnBot
2026-08-12 20:23:51 +03:00
test_core_hot_switch.py
fix: unify transport transitions and restore direct Russian services
2026-09-06 01:10:35 +03:00
test_core_release_freeze.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_core_resolver.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_country_flags_assets.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_diagnostic_runtime_snapshot.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_dns_cache_countries.py
fix: unify transport transitions and restore direct Russian services
2026-09-06 01:10:35 +03:00
test_dns_readiness_fallback.py
fix: retain authenticated AWG while checking HTTPS in background
2026-09-06 15:36:10 +03:00
test_engine_process_stop.py
refactor: unify protocol ownership and preserve original runtime errors
2026-09-05 16:13:08 +03:00
test_file_manager.py
fix: unify transport transitions and restore direct Russian services
2026-09-06 01:10:35 +03:00
test_geoip_build.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_happ_crypt.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_hot_switch_hardening.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_http_utils.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_hysteria_authenticated_readiness.py
fix: resolve AWG uplink via GetBestInterfaceEx and stop false HTTPS warnings
2026-09-14 13:13:16 +03:00
test_hysteria_live_readiness.py
fix: retain authenticated Hysteria when health endpoints time out
2026-09-06 14:32:52 +03:00
test_hysteria_runtime_contract.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_hysteria_startup_regressions.py
fix: align Hysteria startup and defer collapsed server updates
2026-09-06 13:50:00 +03:00
test_main_window_static.py
Prepare v0.4.79: unified theming, responsive layout, real flags
2026-08-11 23:21:28 +03:00
test_native_routing_templates.py
fix: resolve tunnel names on the node instead of DoH through the proxy
2026-09-06 17:28:33 +03:00
test_native_template_core_validation.py
fix: unify transport transitions and restore direct Russian services
2026-09-06 01:10:35 +03:00
test_node_lookup.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_nodes_filter_proxy.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_nodes_table_model.py
fix: preserve interactive server table and bound DNS fallback readiness
2026-09-06 02:07:48 +03:00
test_port_allocator.py
sing-box extended
2026-07-11 21:01:15 +03:00
test_proxy_engine_settings.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_proxy_manager_state.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_proxy_readiness.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_raw_config_cache.py
Prepare v0.4.78: server list rework, faster switching, subscriptions
2026-08-11 22:10:53 +03:00
test_release_windows_automation.py
build: clean read-only Go licenses without hiding file locks
2026-09-06 00:32:25 +03:00
test_rotation.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_rotation_transitions.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_runtime_errors.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_runtime_logging.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_runtime_services_metrics.py
Fix stale Windows builds and calm UDP switching
2026-08-20 20:12:44 +03:00
test_runtime_stop_regressions.py
fix: resolve AWG uplink via WinAPI and unify the sidecar relay seam
2026-09-14 11:54:30 +03:00
test_sidecar_readiness.py
fix: resolve AWG uplink via WinAPI and unify the sidecar relay seam
2026-09-14 11:54:30 +03:00
test_sing_udp_patch.py
test: keep ZIP traversal fixture unsafe on Windows
2026-09-06 00:27:10 +03:00
test_singbox_config_check.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_singbox_config_recovery.py
Automatically recover wrapped sing-box configs
2026-07-25 18:34:27 +03:00
test_singbox_core_updater.py
Update the sing-box core and let the button apply a subscription
2026-08-20 20:35:51 +03:00
test_singbox_document_validation.py
Clarify invalid sing-box JSON root errors
2026-07-25 18:17:10 +03:00
test_singbox_protocols.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_singbox_proxy_runtime.py
fix: align Hysteria startup and defer collapsed server updates
2026-09-06 13:50:00 +03:00
test_singbox_template_dns_contract.py
fix: resolve tunnel names on the node instead of DoH through the proxy
2026-09-06 17:28:33 +03:00
test_source_layout.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_subscription_limits.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_subscriptions.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_template_sync.py
fix: refresh managed DNS and cache server table rendering
2026-09-06 14:51:07 +03:00
test_transition_responsiveness.py
Make server switching responsive
2026-08-05 00:06:32 +03:00
test_ui_theme_static.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_update_notification.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_win_netinfo.py
fix: resolve AWG uplink via GetBestInterfaceEx and stop false HTTPS warnings
2026-09-14 13:13:16 +03:00
test_wireguard_endpoints.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_worker_service_batching.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_yandex_music_direct_templates.py
fix: resolve tunnel names on the node instead of DoH through the proxy
2026-09-06 17:28:33 +03:00
test_zapret_catalog.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_zapret_manager.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00
test_zapret_moe_proxy_templates.py
fix: unify transport transitions and restore direct Russian services
2026-09-06 01:10:35 +03:00
test_zapret_target.py
feat: use official Amnezia transport and organize runtime modules
2026-09-06 00:14:08 +03:00