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.