From 118bf981454188c4989e8b565dec67906616f885 Mon Sep 17 00:00:00 2001 From: Danielle Maywood Date: Thu, 19 Jun 2025 09:37:48 +0100 Subject: [PATCH] chore(agent): add workspace owner env var and log dev container app failures (#18433) Listen to feedback that was missed in https://github.com/coder/coder/pull/18346 - Adds `CODER_WORKSPACE_OWNER_NAME` into the agent environment. - Logs warnings for when dev container app creation fails. --- agent/agent.go | 1 + agent/agent_test.go | 5 ++++- agent/agentcontainers/subagent.go | 14 ++++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/agent/agent.go b/agent/agent.go index 79f3feb21c..e142f8662f 100644 --- a/agent/agent.go +++ b/agent/agent.go @@ -1297,6 +1297,7 @@ func (a *agent) updateCommandEnv(current []string) (updated []string, err error) "CODER": "true", "CODER_WORKSPACE_NAME": manifest.WorkspaceName, "CODER_WORKSPACE_AGENT_NAME": manifest.AgentName, + "CODER_WORKSPACE_OWNER_NAME": manifest.OwnerName, // Specific Coder subcommands require the agent token exposed! "CODER_AGENT_TOKEN": *a.sessionToken.Load(), diff --git a/agent/agent_test.go b/agent/agent_test.go index 55b1808784..1f049f08b6 100644 --- a/agent/agent_test.go +++ b/agent/agent_test.go @@ -1209,7 +1209,7 @@ func TestAgent_EnvironmentVariableExpansion(t *testing.T) { func TestAgent_CoderEnvVars(t *testing.T) { t.Parallel() - for _, key := range []string{"CODER", "CODER_WORKSPACE_NAME", "CODER_WORKSPACE_AGENT_NAME"} { + for _, key := range []string{"CODER", "CODER_WORKSPACE_NAME", "CODER_WORKSPACE_OWNER_NAME", "CODER_WORKSPACE_AGENT_NAME"} { key := key t.Run(key, func(t *testing.T) { t.Parallel() @@ -3079,6 +3079,9 @@ func setupAgent(t *testing.T, metadata agentsdk.Manifest, ptyTimeout time.Durati if metadata.WorkspaceName == "" { metadata.WorkspaceName = "test-workspace" } + if metadata.OwnerName == "" { + metadata.OwnerName = "test-user" + } if metadata.WorkspaceID == uuid.Nil { metadata.WorkspaceID = uuid.New() } diff --git a/agent/agentcontainers/subagent.go b/agent/agentcontainers/subagent.go index b8e87707b3..42df7080a8 100644 --- a/agent/agentcontainers/subagent.go +++ b/agent/agentcontainers/subagent.go @@ -243,6 +243,20 @@ func (a *subAgentAPIClient) Create(ctx context.Context, agent SubAgent) (SubAgen if err != nil { return agent, err } + + for _, appError := range resp.AppCreationErrors { + app := apps[appError.Index] + + a.logger.Warn(ctx, "unable to create app", + slog.F("agent_name", agent.Name), + slog.F("agent_id", agent.ID), + slog.F("directory", agent.Directory), + slog.F("app_slug", app.Slug), + slog.F("field", appError.GetField()), + slog.F("error", appError.GetError()), + ) + } + return agent, nil }