From fa5aa35ad8bcc89feb471484e396d749c51bc918 Mon Sep 17 00:00:00 2001 From: Wojtek Date: Wed, 12 Aug 2026 12:18:47 -0400 Subject: [PATCH] Load Hermes project context in scheduled jobs --- internal/driver/hermes/jobs.go | 2 ++ internal/driver/hermes/jobs_test.go | 3 +++ 2 files changed, 5 insertions(+) diff --git a/internal/driver/hermes/jobs.go b/internal/driver/hermes/jobs.go index ee9f7cd..ec2e35a 100644 --- a/internal/driver/hermes/jobs.go +++ b/internal/driver/hermes/jobs.go @@ -21,6 +21,7 @@ type job struct { ID string `json:"id"` Name string `json:"name"` Prompt string `json:"prompt"` + Workdir string `json:"workdir"` Skills []string `json:"skills"` Skill *string `json:"skill"` Model *string `json:"model"` @@ -90,6 +91,7 @@ func GenerateJobsJSON(rc *driver.ResolvedClaw) ([]byte, error) { ID: id, Name: name, Prompt: message, + Workdir: hermesWorkspaceDir, Skills: []string{}, Schedule: schedule{Kind: "cron", Expr: expr, Display: expr}, ScheduleDisplay: expr, diff --git a/internal/driver/hermes/jobs_test.go b/internal/driver/hermes/jobs_test.go index bd86a4f..24c9464 100644 --- a/internal/driver/hermes/jobs_test.go +++ b/internal/driver/hermes/jobs_test.go @@ -36,6 +36,9 @@ func TestGenerateJobsJSONUsesWrapperAndLocalDelivery(t *testing.T) { if got := job["deliver"]; got != "local" { t.Fatalf("expected local deliver target, got %#v", got) } + if got := job["workdir"]; got != hermesWorkspaceDir { + t.Fatalf("expected scheduled job workdir %q, got %#v", hermesWorkspaceDir, got) + } if _, ok := job["next_run_at"].(string); !ok { t.Fatalf("expected next_run_at string, got %#v", job["next_run_at"]) }