feat(dns): remember override state per profile

Save the DNS override switch and session confirmation per profile so automatic protection only disables the affected profile. Preserve the legacy switch as the initial preference and show the profile scope beside the settings gear and in the DNS editor.

Refs #7993
This commit is contained in:
wonfen
2026-09-22 10:54:55 +08:00
parent 6a85d0344e
commit ff1ce92fac
25 changed files with 237 additions and 64 deletions
+1
View File
@@ -699,6 +699,7 @@ export const translationKeys = [
'settings.modals.tun.messages.invalidRouteExcludeAddress',
'settings.modals.tun.messages.routeExcludeAddressHint',
'settings.modals.dns.dialog.title',
'settings.modals.dns.dialog.profileScope',
'settings.modals.dns.dialog.warning',
'settings.modals.dns.protection.title',
'settings.modals.dns.protection.message',
+1
View File
@@ -955,6 +955,7 @@ export interface TranslationResources {
}
dns: {
dialog: {
profileScope: string
title: string
warning: string
}
+1
View File
@@ -890,6 +890,7 @@ interface IVergeConfig {
enable_system_proxy?: boolean
enable_global_hotkey?: boolean
enable_dns_settings?: boolean
profile_dns_settings?: Record<string, { enabled: boolean }>
proxy_auto_config?: boolean
pac_file_content?: string
proxy_host?: string