From 225d3ea65cfc35d211fc66e30cf05cbc693d37e4 Mon Sep 17 00:00:00 2001 From: Adam Malczewski Date: Sat, 23 May 2026 05:25:03 +0900 Subject: feat: relative working directory support and subagent tab cwd propagation - Resolve relative cwd paths (e.g. ./subtask) against parent's working directory at runtime - check-dir endpoint resolves relative paths and returns the resolved absolute path - AgentBuilder shows resolved path below input for relative paths, updated helper text - tab-created event now includes workingDirectory so subagent tabs display their cwd in sidebar - Add workingDirectory to tab-created AgentEvent type definition - spawnChildAgent stores resolved absolute path instead of raw relative path --- packages/api/src/routes/agents.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'packages/api/src/routes') diff --git a/packages/api/src/routes/agents.ts b/packages/api/src/routes/agents.ts index d3ca23f..1627674 100644 --- a/packages/api/src/routes/agents.ts +++ b/packages/api/src/routes/agents.ts @@ -99,11 +99,16 @@ agentsRoutes.get("/check-dir", (c) => { if (dirPath === "~" || dirPath.startsWith("~/")) { dirPath = path.join(os.homedir(), dirPath.slice(1)); } + // Resolve relative paths against the project root + if (!path.isAbsolute(dirPath)) { + const projectDir = process.env.DISPATCH_WORKING_DIR || process.cwd(); + dirPath = path.resolve(projectDir, dirPath); + } try { const stat = fs.statSync(dirPath); - return c.json({ exists: stat.isDirectory() }); + return c.json({ exists: stat.isDirectory(), resolved: dirPath }); } catch { - return c.json({ exists: false }); + return c.json({ exists: false, resolved: dirPath }); } }); -- cgit v1.2.3