Persist settings, keybindings, and AGENTS.md from XDG config
Seeds empty files on first run. Mounted into the container so
pi picks them up as global configuration.

Assisted-by: Claude Opus 4.6 via pi
change uslqqlpsustznrzpyxyrsonmlzkmkrok
commit a3fe6e4e6166c8747702d2bfdf8c3d9a33072382
author Alpha Chen <alpha@kejadlen.dev>
date
parent pyutsrrt
diff --git a/assets/compose.yml b/assets/compose.yml
index 5d90527..d64ab0f 100644
--- a/assets/compose.yml
+++ b/assets/compose.yml
@@ -9,3 +9,6 @@ services:
     volumes:
       - "${RAMEKIN_WORKSPACE:-.}:/workspace"
       - "${RAMEKIN_DATA_DIR}:/root/.pi"
+      - "${RAMEKIN_CONFIG_DIR}/settings.json:/root/.pi/agent/settings.json"
+      - "${RAMEKIN_CONFIG_DIR}/keybindings.json:/root/.pi/agent/keybindings.json"
+      - "${RAMEKIN_CONFIG_DIR}/AGENTS.md:/root/.pi/agent/AGENTS.md"
diff --git a/src/main.rs b/src/main.rs
index d5dc0ec..a55ed14 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -45,7 +45,23 @@ fn run() -> Result<()> {
         .create_data_directory("")
         .wrap_err("failed to create pi data directory")?;
 
-    info!(data = %pi_data_dir.display(), "pi data directory");
+    let pi_config_dir = xdg
+        .create_config_directory("")
+        .wrap_err("failed to create pi config directory")?;
+
+    // Seed empty config files if they don't exist
+    for file in ["settings.json", "keybindings.json"] {
+        let path = pi_config_dir.join(file);
+        if !path.exists() {
+            fs_err::write(&path, "{}")?;
+        }
+    }
+    let agents_md = pi_config_dir.join("AGENTS.md");
+    if !agents_md.exists() {
+        fs_err::write(&agents_md, "")?;
+    }
+
+    info!(data = %pi_data_dir.display(), config = %pi_config_dir.display(), "pi directories");
     info!(workspace = %workspace.display(), "starting agent");
 
     // Write embedded files to XDG cache so docker compose can find them
@@ -75,7 +91,8 @@ fn run() -> Result<()> {
             .env("RAMEKIN_WORKSPACE", &workspace)
             .env("RAMEKIN_DATA_DIR", &pi_data_dir)
             .env("RAMEKIN_DOCKERFILE", &dockerfile)
-            .env("RAMEKIN_BUILD_CONTEXT", &build_context);
+            .env("RAMEKIN_BUILD_CONTEXT", &build_context)
+            .env("RAMEKIN_CONFIG_DIR", &pi_config_dir);
         Ok(cmd)
     };