From cfa9d15e751b90506bd58971c1c76d22902c6d14 Mon Sep 17 00:00:00 2001 From: Zach Bai Date: Wed, 22 Apr 2026 12:38:15 -0700 Subject: [PATCH] Propagate task conversation ID in self-hosted worker. --- internal/types/messages.go | 2 ++ internal/worker/worker.go | 3 +++ 2 files changed, 5 insertions(+) diff --git a/internal/types/messages.go b/internal/types/messages.go index 3763e05..d4d1fac 100644 --- a/internal/types/messages.go +++ b/internal/types/messages.go @@ -40,6 +40,8 @@ type TaskAssignmentMessage struct { EnvVars map[string]string `json:"env_vars,omitempty"` // AdditionalSidecars is a list of extra sidecar images to mount into the task container. AdditionalSidecars []SidecarMount `json:"additional_sidecars,omitempty"` + // ConversationID is the UUID of an existing AI conversation to continue. + ConversationID string `json:"conversation_id,omitempty"` } // TaskClaimedMessage is sent from worker to server after successfully claiming a task diff --git a/internal/worker/worker.go b/internal/worker/worker.go index c8e789e..fa1d8cb 100644 --- a/internal/worker/worker.go +++ b/internal/worker/worker.go @@ -375,6 +375,9 @@ func (w *Worker) prepareTaskParams(assignment *types.TaskAssignmentMessage) *Tas "--server-root-url", w.config.ServerRootURL, } + if assignment.ConversationID != "" { + baseArgs = append(baseArgs, "--conversation", assignment.ConversationID) + } baseArgs = common.AugmentArgsForTask(task, baseArgs, common.TaskAugmentOptions{ IdleOnComplete: w.config.IdleOnComplete, })