Inline strict SwiftLint and compiler flags in lint, build, and test tasks. Remove the STRICT configuration and forwarding from validation and CI, and update development documentation.
Keep regular policy while windows remain open to avoid repeated Dock registration. Share the activation retry budget across visibility events and stop permanently after exhaustion.
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.
CI scheduling can exhaust the fallback budget or exceed the elapsed-time
assertion. Separate record filtering and control deadline delivery so
tests verify fallback and request cancellation directly.
The home run-control card and the menu-bar status card render the agent
and system-proxy status rows straight from snapshot replacements, so fast
operations (e.g. proxy mode switches) flash transient states like
"applying" before settling.
Add a presentation-layer debounce shared by both surfaces:
- TransientDelayGate: per-stream gate where stable values display
immediately, transient values (starting/applying/repairing) display
after 400 ms and are dropped when superseded, and displayed transients
are held for at least 400 ms.
- StatusDisplayModel: app-level shared model deriving agent and
system-proxy payloads (row + detail + hint) from workflow snapshots
through two independent gates; domain facts keep their cadence.
- Wire the model through the composition root into RuntimeControlCard
and StatusCardView; toggles, approval actions, the difference view and
target/mode rows keep reading the raw snapshot.