From fc6503ecd11f02e4f406d89fc0c5b7fdd36f09ec Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Wed, 16 Jul 2025 17:10:08 -0400 Subject: [PATCH] move provider priority setup --- .../lifecycle/startup/handle_tauri_startup.rs | 8 ++++- .../tasks/load_provider_priority_state.rs | 34 +++++++++++++++++++ .../src/core/lifecycle/startup/tasks/mod.rs | 1 + crates/desktop/artcraft/src/lib.rs | 16 --------- 4 files changed, 42 insertions(+), 17 deletions(-) create mode 100644 crates/desktop/artcraft/src/core/lifecycle/startup/tasks/load_provider_priority_state.rs diff --git a/crates/desktop/artcraft/src/core/lifecycle/startup/handle_tauri_startup.rs b/crates/desktop/artcraft/src/core/lifecycle/startup/handle_tauri_startup.rs index a8d4d0a1ad..c5a7a64ff2 100644 --- a/crates/desktop/artcraft/src/core/lifecycle/startup/handle_tauri_startup.rs +++ b/crates/desktop/artcraft/src/core/lifecycle/startup/handle_tauri_startup.rs @@ -1,4 +1,5 @@ use crate::core::lifecycle::startup::tasks::bootstrap_task_database::bootstrap_task_database; +use crate::core::lifecycle::startup::tasks::load_provider_priority_state::load_provider_priority_state; use crate::core::lifecycle::startup::tasks::print_startup_debug_info::print_startup_debug_info; use crate::core::lifecycle::startup::tasks::size_and_position_windows::size_and_position_windows; use crate::core::lifecycle::startup::tasks::spawn_discord_presence_thread::spawn_discord_presence_thread; @@ -28,9 +29,14 @@ pub async fn handle_tauri_startup( ) -> AnyhowResult<()> { print_startup_debug_info(); - + let task_database = bootstrap_task_database(&app, &root).await?; + + load_provider_priority_state( + &app, + &root, + )?; spawn_main_window_thread( &app, diff --git a/crates/desktop/artcraft/src/core/lifecycle/startup/tasks/load_provider_priority_state.rs b/crates/desktop/artcraft/src/core/lifecycle/startup/tasks/load_provider_priority_state.rs new file mode 100644 index 0000000000..58d300d5a8 --- /dev/null +++ b/crates/desktop/artcraft/src/core/lifecycle/startup/tasks/load_provider_priority_state.rs @@ -0,0 +1,34 @@ +use crate::core::state::data_dir::app_data_root::AppDataRoot; +use crate::core::state::provider_priority::ProviderPriorityStore; +use anyhow::anyhow; +use errors::AnyhowResult; +use tauri::{AppHandle, Manager}; + +pub fn load_provider_priority_state( + app: &AppHandle, + root: &AppDataRoot, +) -> AnyhowResult<()> { + let provider_priority = match ProviderPriorityStore::from_filesystem_configs(root) { + Ok(Some(priority)) => { + println!("Loaded provider priority from disk: {:?}", priority.get_priority()); + priority + } + Ok(None) => { + println!("No provider priority found on disk, using default."); + ProviderPriorityStore::default() + } + Err(err) => { + eprintln!("Failed to read provider priority from disk: {:?}", err); + ProviderPriorityStore::default() + } + }; + + let success = app.manage(provider_priority); + + if !success { + eprintln!("Failed to manage provider priority state."); + return Err(anyhow!("Failed to manage provider priority state.")); + } + + Ok(()) +} diff --git a/crates/desktop/artcraft/src/core/lifecycle/startup/tasks/mod.rs b/crates/desktop/artcraft/src/core/lifecycle/startup/tasks/mod.rs index c59a5974f3..915eb0d138 100644 --- a/crates/desktop/artcraft/src/core/lifecycle/startup/tasks/mod.rs +++ b/crates/desktop/artcraft/src/core/lifecycle/startup/tasks/mod.rs @@ -6,3 +6,4 @@ pub (super) mod spawn_fal_task_polling_thread; pub (super) mod spawn_main_window_thread; pub (super) mod spawn_sora_task_polling_thread; pub (super) mod spawn_storytoller_task_polling_thread; +pub (super) mod load_provider_priority_state; diff --git a/crates/desktop/artcraft/src/lib.rs b/crates/desktop/artcraft/src/lib.rs index aa9b8c1851..42d91808b8 100644 --- a/crates/desktop/artcraft/src/lib.rs +++ b/crates/desktop/artcraft/src/lib.rs @@ -86,21 +86,6 @@ pub fn run() { let app_env_configs_2 = app_env_configs.clone(); - let provider_priority = match ProviderPriorityStore::from_filesystem_configs(&app_data_root) { - Ok(Some(priority)) => { - println!("Loaded provider priority from disk: {:?}", priority.get_priority()); - priority - } - Ok(None) => { - println!("No provider priority found on disk, using default."); - ProviderPriorityStore::default() - } - Err(err) => { - eprintln!("Failed to read provider priority from disk: {:?}", err); - ProviderPriorityStore::default() - } - }; - println!("Initializing backend runtime..."); tauri::Builder::default() @@ -162,7 +147,6 @@ pub fn run() { .manage(app_preferences) .manage(fal_creds_manager) .manage(fal_task_queue) - .manage(provider_priority) .manage(sora_creds_manager) .manage(sora_task_queue) .manage(storyteller_creds_manager_3)