diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-03-03 21:22:30 +0000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-03-03 21:22:30 +0000 |
| commit | 3962597950421e422b6e1ce57764550f5600ded6 (patch) | |
| tree | ef376c4c192293869fe408cb27abe6bba9e1fa32 /internal/executor/claude.go | |
| parent | e8d1b80bd504088a7535e6045ab77f1ddd3b3d43 (diff) | |
Fix working_dir failures: validate path early, remove hardcoded /root
executor/claude.go: stat working_dir before cmd.Start() so a missing
or inaccessible directory surfaces as a clear error
("working_dir \"/bad/path\": no such file or directory") rather than
an opaque chdir failure wrapped in "starting claude".
api/elaborate.go: replace the hardcoded /root/workspace/claudomator
path with buildElaboratePrompt(workDir) which injects the server's
actual working directory (from os.Getwd() at startup). Empty workDir
tells the model to leave working_dir blank.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'internal/executor/claude.go')
| -rw-r--r-- | internal/executor/claude.go | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/internal/executor/claude.go b/internal/executor/claude.go index 8486427..7b3884c 100644 --- a/internal/executor/claude.go +++ b/internal/executor/claude.go @@ -40,6 +40,9 @@ func (r *ClaudeRunner) Run(ctx context.Context, t *task.Task, e *storage.Executi "CLAUDOMATOR_TASK_ID="+t.ID, ) if t.Claude.WorkingDir != "" { + if _, err := os.Stat(t.Claude.WorkingDir); err != nil { + return fmt.Errorf("working_dir %q: %w", t.Claude.WorkingDir, err) + } cmd.Dir = t.Claude.WorkingDir } |
