diff --git a/ShadowsocksX-NG2/App/Application/ProxyControlWorkflow/ProxyControlWorkflow.swift b/ShadowsocksX-NG2/App/Application/ProxyControlWorkflow/ProxyControlWorkflow.swift index ddc3cd0f..0e9a57c6 100644 --- a/ShadowsocksX-NG2/App/Application/ProxyControlWorkflow/ProxyControlWorkflow.swift +++ b/ShadowsocksX-NG2/App/Application/ProxyControlWorkflow/ProxyControlWorkflow.swift @@ -248,7 +248,7 @@ final class ProxyControlWorkflow: ObservableObject { return republish() } - /// 切换代理模式:可用性与 no-op 语义由控制器既有入口裁定; + /// 切换代理模式:no-op 语义由控制器既有入口裁定; /// 完成后整体重发布。持久化失败保留旧模式,失败以 typed fact 呈现。 @discardableResult func setProxyMode(_ mode: ProxyMode) async -> ProxyControlSnapshot { diff --git a/ShadowsocksX-NG2/App/Application/ProxyRuntime/ProxyRuntimeController+Mode.swift b/ShadowsocksX-NG2/App/Application/ProxyRuntime/ProxyRuntimeController+Mode.swift index 24594553..3c05f3a4 100644 --- a/ShadowsocksX-NG2/App/Application/ProxyRuntime/ProxyRuntimeController+Mode.swift +++ b/ShadowsocksX-NG2/App/Application/ProxyRuntime/ProxyRuntimeController+Mode.swift @@ -5,7 +5,6 @@ extension ProxyRuntimeController { /// and global) also deploy and verify the ACL runtime even when system proxy /// is off, because manually connected SOCKS and HTTP clients use the same ACL. func setProxyMode(_ mode: ProxyMode) async { - guard ProxyMode.availableModes.contains(mode) else { return } guard mode != proxyMode else { return } await transitionMode(mode, ruleDefaultAction: settings.ruleDefaultAction) } diff --git a/ShadowsocksX-NG2/Tests/ProxyControl/ProxyModeAvailabilityTests.swift b/ShadowsocksX-NG2/Tests/ProxyControl/ProxyModeAvailabilityTests.swift index 7d1754b4..2c4a2d6e 100644 --- a/ShadowsocksX-NG2/Tests/ProxyControl/ProxyModeAvailabilityTests.swift +++ b/ShadowsocksX-NG2/Tests/ProxyControl/ProxyModeAvailabilityTests.swift @@ -3,8 +3,7 @@ import XCTest @testable import ShadowsocksX_NG2 -/// Domain mode availability is the single policy shared by the menu and -/// runtime mode entry points. +/// Built-in modes keep a stable selector order and project local proxy settings. final class ProxyModeAvailabilityTests: XCTestCase { func testBuiltInModesAreAlwaysAvailableInProductOrder() { XCTAssertEqual(