diff --git a/agent/agent.go b/agent/agent.go index 79f3feb21c50e..e142f8662f641 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 55b1808784aa6..1f049f08b65f9 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 b8e87707b3058..42df7080a890a 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 }