summaryrefslogtreecommitdiff
path: root/internal/api
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-03-07 00:10:23 +0000
committerPeter Stone <thepeterstone@gmail.com>2026-03-07 00:10:23 +0000
commit68453478f516ae923e99df85f5642f0f865b5bcc (patch)
treefdca9b81f7c3f4bf7d1487ea523039a4aa443032 /internal/api
parent0291a7880d29b39d7cd56a6a8be66a9b5ec3f457 (diff)
feat: pass selected project directory to elaborate
The elaborate call now sends working_dir from the Project dropdown. The backend uses it (falling back to server workDir) when building the system prompt, so AI-drafted tasks are contextualised to the selected project. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'internal/api')
-rw-r--r--internal/api/elaborate.go10
1 files changed, 8 insertions, 2 deletions
diff --git a/internal/api/elaborate.go b/internal/api/elaborate.go
index d275d61..00f3297 100644
--- a/internal/api/elaborate.go
+++ b/internal/api/elaborate.go
@@ -86,7 +86,8 @@ func (s *Server) claudeBinaryPath() string {
func (s *Server) handleElaborateTask(w http.ResponseWriter, r *http.Request) {
var input struct {
- Prompt string `json:"prompt"`
+ Prompt string `json:"prompt"`
+ WorkingDir string `json:"working_dir"`
}
if err := json.NewDecoder(r.Body).Decode(&input); err != nil {
writeJSON(w, http.StatusBadRequest, map[string]string{"error": "invalid JSON: " + err.Error()})
@@ -97,12 +98,17 @@ func (s *Server) handleElaborateTask(w http.ResponseWriter, r *http.Request) {
return
}
+ workDir := s.workDir
+ if input.WorkingDir != "" {
+ workDir = input.WorkingDir
+ }
+
ctx, cancel := context.WithTimeout(r.Context(), elaborateTimeout)
defer cancel()
cmd := exec.CommandContext(ctx, s.claudeBinaryPath(),
"-p", input.Prompt,
- "--system-prompt", buildElaboratePrompt(s.workDir),
+ "--system-prompt", buildElaboratePrompt(workDir),
"--output-format", "json",
"--model", "haiku",
)