From 28761ceb412d83508e4478d085898a5f04c0e59d Mon Sep 17 00:00:00 2001 From: Riz Ashraf Date: Sat, 19 Sep 2026 05:20:11 +0100 Subject: [PATCH] fix: Replace silent panics on bind and index creation with daemon_error.log writes --- server/src/main.rs | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/server/src/main.rs b/server/src/main.rs index a2a04bc..bc54dfb 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -407,7 +407,16 @@ fn run_server(state: Arc) -> Result<(), Box> let addr = std::env::var("MCP_PORT").unwrap_or_else(|_| "3000".to_string()); let addr: std::net::SocketAddr = format!("127.0.0.1:{}", addr).parse().unwrap(); - let listener = tokio::net::TcpListener::bind(addr).await.unwrap(); + let listener = match tokio::net::TcpListener::bind(addr).await { + Ok(l) => l, + Err(e) => { + let log_path = dirs::home_dir() + .unwrap_or_default() + .join(".gemini/mcp_memory/daemon_error.log"); + let _ = std::fs::write(&log_path, format!("Failed to bind to {}: {}\n", addr, e)); + return Ok(()); + } + }; if let Err(e) = axum::serve(listener, app.into_make_service()).await { let log_path = dirs::home_dir() .unwrap_or_default() @@ -745,7 +754,16 @@ fn main() -> Result<(), Box> { let state = Arc::new(MemoryState { graph: Store::new("knowledge_graph_master", db.clone()), base_dir: base.clone(), - search_index: RwLock::new(crate::search::MemoryIndex::new(&base).unwrap()), + search_index: RwLock::new(match crate::search::MemoryIndex::new(&base) { + Ok(idx) => idx, + Err(e) => { + let log_path = dirs::home_dir() + .unwrap_or_default() + .join(".gemini/mcp_memory/daemon_error.log"); + let _ = std::fs::write(&log_path, format!("Failed to create MemoryIndex: {}\n", e)); + std::process::exit(1); + } + }), ledger: Store::new("audit_ledger", db.clone()), sticky: Store::new("sticky_notes", db.clone()), tasks: Store::new("tasks", db.clone()),