From 56ff0fb65ad1331e445651322b72d91cee546dd1 Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Wed, 18 Jun 2025 17:35:29 +0300 Subject: [PATCH] fix(agent/agentcontainers): make sure arch is set for sub agents (#18428) --- agent/agentcontainers/api.go | 6 ++++++ agent/agentcontainers/api_test.go | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/agent/agentcontainers/api.go b/agent/agentcontainers/api.go index 3e42a73746..a6c2167ca8 100644 --- a/agent/agentcontainers/api.go +++ b/agent/agentcontainers/api.go @@ -1063,6 +1063,10 @@ func (api *API) maybeInjectSubAgentIntoContainerLocked(ctx context.Context, dc c ) return nil } + if proc.agent.ID == uuid.Nil { + proc.agent.Architecture = arch + } + agentBinaryPath, err := os.Executable() if err != nil { return xerrors.Errorf("get agent binary path: %w", err) @@ -1107,6 +1111,8 @@ func (api *API) maybeInjectSubAgentIntoContainerLocked(ctx context.Context, dc c subAgentConfig := proc.agent.CloneConfig(dc) if proc.agent.ID == uuid.Nil || maybeRecreateSubAgent { + subAgentConfig.Architecture = arch + // Detect workspace folder by executing `pwd` in the container. // NOTE(mafredri): This is a quick and dirty way to detect the // workspace folder inside the container. In the future we will diff --git a/agent/agentcontainers/api_test.go b/agent/agentcontainers/api_test.go index 526c7432c3..3bf6206e2a 100644 --- a/agent/agentcontainers/api_test.go +++ b/agent/agentcontainers/api_test.go @@ -252,6 +252,15 @@ func (m *fakeSubAgentClient) Create(ctx context.Context, agent agentcontainers.S } } } + if agent.Name == "" { + return agentcontainers.SubAgent{}, xerrors.New("name must be set") + } + if agent.Architecture == "" { + return agentcontainers.SubAgent{}, xerrors.New("architecture must be set") + } + if agent.OperatingSystem == "" { + return agentcontainers.SubAgent{}, xerrors.New("operating system must be set") + } agent.ID = uuid.New() agent.AuthToken = uuid.New() if m.agents == nil {