Add Mainland China proxy routing with independent rule workspaces.
Preserve existing routing choices through equivalent preset mappings.
BREAKING CHANGE: existing custom rules and enablement settings are
not migrated. Recreate them in the appropriate preset.
testExternalSettingsChangesNeverSupplyAFallbackOrAlterThreeStateResults
mutates a preferences fixture 12 ways but never passes it to RulesWorkflow
(which takes no preferences) and the matcher path is a pure function of the
collection; the 48 assertions are four matcher outcomes repeated 12 times and
each outcome is covered elsewhere.
The two ACL "does not load custom rules" cases build a customRules array that
ProxyACLDocument.global/direct cannot receive (both take only a URL), so their
contains() negatives could never fail; the template shapes are pinned by
ProxyACLTests and the behavioral claim by CustomRuleControllerTests.
Co-Authored-By: DeepSeek Harness <noreply@deepseek.com>