diff --git a/backend/server.py b/backend/server.py index 15f94a67..b5621cd1 100644 --- a/backend/server.py +++ b/backend/server.py @@ -25,14 +25,19 @@ logger.info(f"Arguments: {sys.argv}") logger.info("=" * 60) try: + logger.info("Importing argparse...") import argparse + logger.info("Importing uvicorn...") import uvicorn logger.info("Standard library imports successful") # Import the FastAPI app from the backend package - logger.info("Importing backend modules...") + logger.info("Importing backend.config...") + from backend import config + logger.info("Importing backend.database...") + from backend import database + logger.info("Importing backend.main (this may take a while due to torch/transformers)...") from backend.main import app - from backend import config, database logger.info("Backend imports successful") except Exception as e: logger.error(f"Failed to import required modules: {e}", exc_info=True) diff --git a/tauri/src-tauri/src/main.rs b/tauri/src-tauri/src/main.rs index 13f0894c..4af341b8 100644 --- a/tauri/src-tauri/src/main.rs +++ b/tauri/src-tauri/src/main.rs @@ -79,13 +79,14 @@ async fn start_server( *state.child.lock().unwrap() = Some(child); // Wait for server to be ready by listening for startup log - let timeout = tokio::time::Duration::from_secs(30); + // PyInstaller bundles can be slow on first import, especially torch/transformers + let timeout = tokio::time::Duration::from_secs(120); let start_time = tokio::time::Instant::now(); let mut error_output = Vec::new(); loop { if start_time.elapsed() > timeout { - eprintln!("Server startup timeout after 30 seconds"); + eprintln!("Server startup timeout after 120 seconds"); if !error_output.is_empty() { eprintln!("Collected error output:"); for line in &error_output {