diff --git a/docs/content.en/docs/release-notes/_index.md b/docs/content.en/docs/release-notes/_index.md index 805795bb..cb61fda8 100644 --- a/docs/content.en/docs/release-notes/_index.md +++ b/docs/content.en/docs/release-notes/_index.md @@ -17,6 +17,7 @@ Information about release notes of Coco Server is provided here. - fix: quick ai state synchronous #693 - fix: toggle extension should register/unregister hotkey #691 +- fix: take coco server back on refresh #696 ### ✈️ Improvements diff --git a/src-tauri/src/server/servers.rs b/src-tauri/src/server/servers.rs index 38995b6f..54447d85 100644 --- a/src-tauri/src/server/servers.rs +++ b/src-tauri/src/server/servers.rs @@ -338,6 +338,9 @@ pub async fn refresh_coco_server_info( let mut updated_server: Server = serde_json::from_str(&body) .map_err(|e| format!("Failed to deserialize the response: {}", e))?; + // Mark server as online + let _ = mark_server_as_online(app_handle.clone(), &id).await; + // Restore local state updated_server.id = id.clone(); updated_server.builtin = is_builtin; @@ -475,6 +478,21 @@ pub async fn try_register_server_to_search_source( } } +#[tauri::command] +pub async fn mark_server_as_online( + app_handle: AppHandle, id: &str) -> Result<(), ()> { + // println!("server_is_offline: {}", id); + let server = get_server_by_id(id); + if let Some(mut server) = server { + server.available = true; + server.health = None; + save_server(&server); + + try_register_server_to_search_source(app_handle.clone(), &server).await; + } + Ok(()) +} + #[tauri::command] pub async fn mark_server_as_offline( app_handle: AppHandle, id: &str) -> Result<(), ()> {