From 424506da0df77617fe13cf393d05607e0748b481 Mon Sep 17 00:00:00 2001 From: "Molecule AI Dev Engineer A (Kimi)" Date: Fri, 19 Jun 2026 11:55:42 +0000 Subject: [PATCH 1/2] fix(platform-agent): replace undefined conciergePlatformMCPPlugin with conciergePlatformMCPName The running-but-vanilla concierge re-declare path referenced the old symbol conciergePlatformMCPPlugin, which no longer exists. Use the current constant conciergePlatformMCPName instead. Fixes main-red regression at platform_agent.go:666/667. Co-Authored-By: Claude --- workspace-server/internal/handlers/platform_agent.go | 4 ++-- workspace-server/internal/handlers/platform_agent_test.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/workspace-server/internal/handlers/platform_agent.go b/workspace-server/internal/handlers/platform_agent.go index 2b90ed84..835edbd0 100644 --- a/workspace-server/internal/handlers/platform_agent.go +++ b/workspace-server/internal/handlers/platform_agent.go @@ -663,8 +663,8 @@ func MaybeProvisionPlatformAgentOnBoot(ctx context.Context, database *sql.DB, pr return } log.Printf("boot: platform-agent %s running but MISSING concierge identity — re-declaring management MCP and restarting once to apply the system prompt + platform MCP", id) - if rec, skip := seedTemplatePlugins(ctx, id, []string{conciergePlatformMCPPlugin}); skip > 0 { - log.Printf("boot: concierge %s could not re-declare %q plugin (recorded=%d skipped=%d) — management MCP may be absent until next provision", id, conciergePlatformMCPPlugin, rec, skip) + if rec, skip := seedTemplatePlugins(ctx, id, []string{conciergePlatformMCPName}); skip > 0 { + log.Printf("boot: concierge %s could not re-declare %q plugin (recorded=%d skipped=%d) — management MCP may be absent until next provision", id, conciergePlatformMCPName, rec, skip) } go restartByID(id) return diff --git a/workspace-server/internal/handlers/platform_agent_test.go b/workspace-server/internal/handlers/platform_agent_test.go index 90c5003b..ed4e2e57 100644 --- a/workspace-server/internal/handlers/platform_agent_test.go +++ b/workspace-server/internal/handlers/platform_agent_test.go @@ -318,7 +318,7 @@ func TestMaybeProvisionPlatformAgentOnBoot_RestartsRunningButVanilla(t *testing. mock.ExpectQuery(kindQuery).WithArgs(bootPlatformID). WillReturnRows(sqlmock.NewRows([]string{"kind"}).AddRow("platform")) mock.ExpectExec(`INSERT INTO workspace_declared_plugins`). - WithArgs(bootPlatformID, conciergePlatformMCPPlugin, sqlmock.AnyArg()). + WithArgs(bootPlatformID, conciergePlatformMCPName, sqlmock.AnyArg()). WillReturnResult(sqlmock.NewResult(0, 1)) // Running, but ExecRead of system-prompt.md returns vanilla content (no -- 2.52.0 From 5f21ecbdf622c086aaf51ab142647d3bed2e2ecd Mon Sep 17 00:00:00 2001 From: "Molecule AI Dev Engineer A (Kimi)" Date: Fri, 19 Jun 2026 12:02:00 +0000 Subject: [PATCH 2/2] fix(platform-agent): pass source URL, not install name, to seedTemplatePlugins (CR review)\n\nseedTemplatePlugins expects plugin sources and derives the install name\nvia plugins.PluginNameFromSource. The boot re-declare path was passing\nthe bare install name (conciergePlatformMCPName), which would have been\nrecorded incorrectly. Use conciergePlatformMCPSource instead, matching\nthe primary provision path.\n\nCo-Authored-By: Claude --- workspace-server/internal/handlers/platform_agent.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/workspace-server/internal/handlers/platform_agent.go b/workspace-server/internal/handlers/platform_agent.go index 835edbd0..57666d5e 100644 --- a/workspace-server/internal/handlers/platform_agent.go +++ b/workspace-server/internal/handlers/platform_agent.go @@ -663,8 +663,8 @@ func MaybeProvisionPlatformAgentOnBoot(ctx context.Context, database *sql.DB, pr return } log.Printf("boot: platform-agent %s running but MISSING concierge identity — re-declaring management MCP and restarting once to apply the system prompt + platform MCP", id) - if rec, skip := seedTemplatePlugins(ctx, id, []string{conciergePlatformMCPName}); skip > 0 { - log.Printf("boot: concierge %s could not re-declare %q plugin (recorded=%d skipped=%d) — management MCP may be absent until next provision", id, conciergePlatformMCPName, rec, skip) + if rec, skip := seedTemplatePlugins(ctx, id, []string{conciergePlatformMCPSource}); skip > 0 { + log.Printf("boot: concierge %s could not re-declare %q plugin (recorded=%d skipped=%d) — management MCP may be absent until next provision", id, conciergePlatformMCPSource, rec, skip) } go restartByID(id) return -- 2.52.0