From b1bbfdbc9e824edaff6e14a905a68eb264e172b3 Mon Sep 17 00:00:00 2001 From: Arjun <6592213+arkml@users.noreply.github.com> Date: Fri, 10 Apr 2026 10:33:28 +0530 Subject: [PATCH] resolve workdir --- apps/x/packages/core/src/config/config.ts | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/apps/x/packages/core/src/config/config.ts b/apps/x/packages/core/src/config/config.ts index abd10ec5..3d320172 100644 --- a/apps/x/packages/core/src/config/config.ts +++ b/apps/x/packages/core/src/config/config.ts @@ -3,9 +3,25 @@ import fs from "fs"; import { homedir } from "os"; import { fileURLToPath } from "url"; +function resolveWorkDir(): string { + const configured = process.env.ROWBOAT_WORKDIR; + if (!configured) { + return path.join(homedir(), ".rowboat"); + } + + const expanded = configured === "~" + ? homedir() + : (configured.startsWith("~/") || configured.startsWith("~\\")) + ? path.join(homedir(), configured.slice(2)) + : configured; + + return path.resolve(expanded); +} + // Resolve app root relative to compiled file location (dist/...) -// Allow override via ROWBOAT_WORKDIR env var for standalone pipeline usage -export const WorkDir = process.env.ROWBOAT_WORKDIR || path.join(homedir(), ".rowboat"); +// Allow override via ROWBOAT_WORKDIR env var for standalone pipeline usage. +// Normalize to an absolute path so workspace boundary checks behave consistently. +export const WorkDir = resolveWorkDir(); // Get the directory of this file (for locating bundled assets) const __filename = fileURLToPath(import.meta.url);