From 7f8781fef09c1791b1a8fa24694716b3769144d8 Mon Sep 17 00:00:00 2001 From: StoyKK <104083753+StoyKK@users.noreply.github.com> Date: Tue, 15 Sep 2026 18:14:50 +0200 Subject: [PATCH] fix(lifecycle): forward TaskID in the Docker create-instance request (#3612) Co-authored-by: Carlos Florencio --- .../agent/runtime/lifecycle/container.go | 3 +++ .../container_create_instance_test.go | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 apps/backend/internal/agent/runtime/lifecycle/container_create_instance_test.go diff --git a/apps/backend/internal/agent/runtime/lifecycle/container.go b/apps/backend/internal/agent/runtime/lifecycle/container.go index a0a983b859..551da4beb8 100644 --- a/apps/backend/internal/agent/runtime/lifecycle/container.go +++ b/apps/backend/internal/agent/runtime/lifecycle/container.go @@ -97,6 +97,8 @@ func namespacesMCPToolsByServerFromAgent(agent agents.Agent) bool { return rt != nil && rt.NamespacesMCPToolsByServer } +// buildContainerCreateInstanceRequest builds the agentctl request for a fresh +// Docker instance, including the task and session identity used by MCP tools. func buildContainerCreateInstanceRequest( config ContainerConfig, agentType string, @@ -116,6 +118,7 @@ func buildContainerCreateInstanceRequest( AutoStart: false, McpServers: config.McpServers, SessionID: config.SessionID, + TaskID: config.TaskID, DisableAskQuestion: disableAskQuestion, AssumeMcpSse: assumeMcpSse, AssumeMcpHttp: assumeMcpHttp, diff --git a/apps/backend/internal/agent/runtime/lifecycle/container_create_instance_test.go b/apps/backend/internal/agent/runtime/lifecycle/container_create_instance_test.go new file mode 100644 index 0000000000..43df9e1246 --- /dev/null +++ b/apps/backend/internal/agent/runtime/lifecycle/container_create_instance_test.go @@ -0,0 +1,18 @@ +package lifecycle + +import "testing" + +// TestBuildContainerCreateInstanceRequestForwardsTaskAndSession verifies that a +// fresh Docker request preserves the identity required by task-bound MCP tools. +func TestBuildContainerCreateInstanceRequestForwardsTaskAndSession(t *testing.T) { + config := ContainerConfig{TaskID: "task-123", SessionID: "session-456"} + + req := buildContainerCreateInstanceRequest(config, "claude-acp", false, false, false, false, nil) + + if req.TaskID != "task-123" { + t.Fatalf("TaskID = %q, want %q", req.TaskID, "task-123") + } + if req.SessionID != "session-456" { + t.Fatalf("SessionID = %q, want %q", req.SessionID, "session-456") + } +}