Remove lossy default-action writes that can replace china-proxy
with gfwlist. Preserve legacy preference reads and derive the
default action from the selected preset.
Update tests to use explicit presets and verify identity,
legacy compatibility, and no-op reselection.
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.
Move InMemoryDiagnosticReportExporter and InMemoryConfigurationGroupFileExporter
from App/PlatformEffects to Tests/Support: both are test doubles with no
production caller, and production composition wires only the AppKit adapters.
Delete RuleRuntimeCompiler.validation, a wrapper whose only callers were two
assertion blocks in the controller deployment test; those restated
custom-to-custom shadowing and validation order-independence, both pinned by
CustomRuleValidatorTests and RuleAnalysisTests. RuleRuntimeCompiler.compile
stays and keeps its production caller.
Co-Authored-By: DeepSeek Harness <noreply@deepseek.com>
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>
Separate Agent supervision from sslocal input and preserve the latest intent after deployment failure. Persist failure barriers, serialize publication and retirement, and verify reload and single-instance behavior with real processes.
Refs #83