zapret-kvn/tests
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
..
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