feat(proxy): sync UI when failover succeeds

Add FailoverSwitchManager to handle provider switching after successful
failover. This ensures the UI reflects the actual provider in use:

- Create failover_switch.rs with deduplication and async switching logic
- Pass AppHandle through ProxyService -> ProxyServer -> RequestForwarder
- Update is_current in database when failover succeeds
- Emit provider-switched event for frontend refresh
- Update tray menu and live backup synchronously

The switching runs asynchronously via tokio::spawn to avoid blocking
API responses while still providing immediate UI feedback.
This commit is contained in:
Jason
2025-12-15 16:28:00 +08:00
parent 1172209f49
commit 9196d07925
7 changed files with 210 additions and 4 deletions
+2
View File
@@ -131,6 +131,8 @@ impl RequestContext {
self.config.max_retries,
state.status.clone(),
state.current_providers.clone(),
state.failover_manager.clone(),
state.app_handle.clone(),
)
}