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, })