From 1af8fb2a9dc2bd2ef4e74c4383639b45a92b7196 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Thu, 2 Apr 2026 19:57:40 -0400 Subject: [PATCH] replace HOME env var panics with dirs::home_dir() Four expect("HOME not set") calls in config.rs and one unwrap() in admin.rs would panic if HOME wasn't set. Use dirs::home_dir() consistently for portability. Co-Authored-By: Proof of Concept --- src/cli/admin.rs | 2 +- src/config.rs | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/cli/admin.rs b/src/cli/admin.rs index ca06775..f4e179d 100644 --- a/src/cli/admin.rs +++ b/src/cli/admin.rs @@ -46,7 +46,7 @@ pub fn cmd_init() -> Result<(), String> { let config_path = std::env::var("POC_MEMORY_CONFIG") .map(std::path::PathBuf::from) .unwrap_or_else(|_| { - std::path::PathBuf::from(std::env::var("HOME").unwrap()) + dirs::home_dir().unwrap_or_default() .join(".consciousness/config.jsonl") }); if !config_path.exists() { diff --git a/src/config.rs b/src/config.rs index b6c0ea5..d19db0d 100644 --- a/src/config.rs +++ b/src/config.rs @@ -56,7 +56,7 @@ fn default_true() -> bool { true } fn default_context_window() -> usize { 128_000 } fn default_stream_timeout() -> u64 { 60 } fn default_identity_dir() -> PathBuf { - PathBuf::from(std::env::var("HOME").expect("HOME not set")).join(".consciousness/identity") + dirs::home_dir().unwrap_or_default().join(".consciousness/identity") } #[derive(Debug, Clone, Deserialize)] @@ -110,7 +110,7 @@ pub struct Config { impl Default for Config { fn default() -> Self { - let home = PathBuf::from(std::env::var("HOME").expect("HOME not set")); + let home = dirs::home_dir().unwrap_or_default(); Self { user_name: "User".to_string(), assistant_name: "Assistant".to_string(), @@ -200,7 +200,7 @@ impl Config { let path = std::env::var("POC_MEMORY_CONFIG") .map(PathBuf::from) .unwrap_or_else(|_| { - PathBuf::from(std::env::var("HOME").expect("HOME not set")) + dirs::home_dir().unwrap_or_default() .join(".consciousness/config.jsonl") }); @@ -720,7 +720,7 @@ fn deserialize_path_opt<'de, D: serde::Deserializer<'de>>(d: D) -> Result