From 2b1ae2aa7147d06dc40bd759422a5d50112b4ead Mon Sep 17 00:00:00 2001 From: YoVinchen Date: Sat, 22 Nov 2025 17:58:18 +0800 Subject: [PATCH] feat(deeplink): add config merge command for preview Expose config merging functionality to frontend for preview. - Add merge_deeplink_config Tauri command - Make parse_and_merge_config public for reuse - Enable frontend to display complete config before import --- src-tauri/src/commands/deeplink.rs | 10 ++++++++++ src-tauri/src/deeplink.rs | 2 +- src-tauri/src/lib.rs | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src-tauri/src/commands/deeplink.rs b/src-tauri/src/commands/deeplink.rs index 663231f..755f773 100644 --- a/src-tauri/src/commands/deeplink.rs +++ b/src-tauri/src/commands/deeplink.rs @@ -9,6 +9,16 @@ pub fn parse_deeplink(url: String) -> Result { parse_deeplink_url(&url).map_err(|e| e.to_string()) } +/// Merge configuration from Base64/URL into a deep link request +/// This is used by the frontend to show the complete configuration in the confirmation dialog +#[tauri::command] +pub fn merge_deeplink_config( + request: DeepLinkImportRequest, +) -> Result { + log::info!("Merging config for deep link request: {}", request.name); + crate::deeplink::parse_and_merge_config(&request).map_err(|e| e.to_string()) +} + /// Import a provider from a deep link request (after user confirmation) #[tauri::command] pub fn import_from_deeplink( diff --git a/src-tauri/src/deeplink.rs b/src-tauri/src/deeplink.rs index 5fa18ef..f81079d 100644 --- a/src-tauri/src/deeplink.rs +++ b/src-tauri/src/deeplink.rs @@ -398,7 +398,7 @@ requires_openai_auth = true /// Parse and merge configuration from Base64 encoded config or remote URL /// /// Priority: URL params > inline config > remote config -fn parse_and_merge_config( +pub fn parse_and_merge_config( request: &DeepLinkImportRequest, ) -> Result { use base64::prelude::*; diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index acc4658..9319a87 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -706,6 +706,7 @@ pub fn run() { commands::sync_current_providers_live, // Deep link import commands::parse_deeplink, + commands::merge_deeplink_config, commands::import_from_deeplink, update_tray_menu, // Environment variable management