From 96985307afbaf13191eb8e42ae86abe5d6ab8633 Mon Sep 17 00:00:00 2001 From: Bruno Arrial Date: Fri, 3 Jul 2026 01:03:00 -0300 Subject: [PATCH] fix(pulse): use LIFEOS (all-caps) runtime dir in observability.ts DeployCore deploys the runtime to ~/.claude/LIFEOS (all-caps), but observability.ts hardcoded ~/.claude/LifeOS in three places. On case-sensitive filesystems (Linux) Pulse crash-loops with ENOENT on first start, and the crash loop mkdir's a stray real ~/.claude/LifeOS/ directory as a side effect. macOS is unaffected only because APFS is case-insensitive by default. Fixes #1391 --- LifeOS/install/LifeOS/PULSE/Observability/observability.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/LifeOS/install/LifeOS/PULSE/Observability/observability.ts b/LifeOS/install/LifeOS/PULSE/Observability/observability.ts index 8754d9536..e5ea2fee4 100644 --- a/LifeOS/install/LifeOS/PULSE/Observability/observability.ts +++ b/LifeOS/install/LifeOS/PULSE/Observability/observability.ts @@ -55,7 +55,7 @@ export interface ObservabilityConfig { // ── Path Construction ── const HOME = process.env.HOME ?? "" -const LIFEOS_DIR = join(HOME, ".claude", "LifeOS") +const LIFEOS_DIR = join(HOME, ".claude", "LIFEOS") const MEMORY_DIR = join(LIFEOS_DIR, "MEMORY") const WORK_JSON_PATH = join(MEMORY_DIR, "STATE", "work.json") @@ -142,7 +142,7 @@ function getDashboardDir(): string { const dir = config.dashboard_dir ?? DEFAULT_DASHBOARD_DIR // Resolve relative paths against Pulse directory if (!dir.startsWith("/")) { - return join(HOME, ".claude", "LifeOS", "PULSE", dir) + return join(HOME, ".claude", "LIFEOS", "PULSE", dir) } return dir } @@ -1626,7 +1626,7 @@ function readDirMdFiles(dir: string): { name: string, content: string, sections: function handleUserIndexApi(filter: string | null): Response { try { - const LIFEOS_DIR = process.env.LIFEOS_DIR || join(process.env.HOME || "", ".claude", "LifeOS") + const LIFEOS_DIR = process.env.LIFEOS_DIR || join(process.env.HOME || "", ".claude", "LIFEOS") const indexPath = join(LIFEOS_DIR, "PULSE", "state", "user-index.json") const raw = Bun.file(indexPath) if (!raw.size) {