refactor: Store xdg::BaseDirectories on Ramekin struct
Eliminates redundant construction in run() — resolve() already
creates the instance and derives all paths from it.

Assisted-by: Claude Opus 4.6 via pi
change xvukwowtmwpzyymzosmrorsmxtnvmnqr
commit ac8afc5a704d623305d49f2ba7c7663fbcf4779f
author Alpha Chen <alpha@kejadlen.dev>
date
parent ntpwqwru
diff --git a/src/main.rs b/src/main.rs
index a5abe29..1bac363 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -66,6 +66,7 @@ fn main() -> Result<()> {
 
 struct Ramekin {
     workspace: PathBuf,
+    xdg: xdg::BaseDirectories,
     agent_dir: PathBuf,
     pi_data_dir: PathBuf,
     repo_sessions_dir: PathBuf,
@@ -140,6 +141,7 @@ impl Ramekin {
 
         Ok(Self {
             workspace,
+            xdg,
             agent_dir,
             pi_data_dir,
             repo_sessions_dir,
@@ -263,9 +265,9 @@ impl Ramekin {
         };
 
         // Session-scoped: unique compose file and project name
-        let xdg = xdg::BaseDirectories::with_prefix("ramekin");
         let session_id = session_id();
-        let session_dir = xdg
+        let session_dir = self
+            .xdg
             .create_cache_directory(format!("sessions/{session_id}"))
             .wrap_err("failed to create session directory")?;