fix(handlers): main build red — undefined conciergePlatformMCPPlugin #3075
Reference in New Issue
Block a user
Delete Branch "devops/fix-concierge-mcp-undefined-symbol"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
URGENT: core main is RED (does not compile) — blocks all deploys.
Serialized merge-queue semantic conflict (PR #3050 + the concierge-MCP const rename):
recordWorkspacePluginInstall's entitlement gate + its tests referenceconciergePlatformMCPPlugin, but the const isconciergePlatformMCPName(platform_agent.go:457; line 133 of the same file already uses it). Each PR passed CI alone; combined main does NOT compile:This broke
go build ./cmd/server→ every platform/tenant image build failed → all core deploys blocked → prod platform-tenant :latest could not promote.Fix: unify the 1 prod ref + 3 test refs to
conciergePlatformMCPName.SOP checklist
Comprehensive testing performed:
go build ./cmd/servernow succeeds (was the failing image-build target);go test ./internal/handlers/ -run Pluginpasses (the entitlement-gate tests now reference the defined const). No new behavior — pure symbol unification.Local-postgres E2E run: N/A — no DB schema or query change; this is a compile-time symbol rename. The handlers unit tests (sqlmock) covering
recordWorkspacePluginInstallpass.Staging-smoke verified or pending: Pending/post-merge — this fix UNBLOCKS the deploy pipeline (main was red so no image could build). Staging smoke runs on the next green deploy.
Root-cause not symptom: Root cause = an undefined identifier (
conciergePlatformMCPPlugin) left by a serialized-merge semantic conflict; fixed by using the actually-defined constconciergePlatformMCPName(not by deleting the gate or suppressing the error).Five-Axis review walked: Correctness (uses the defined const, matches line 133); readability (consistent naming); architecture (no change); security (entitlement gate behavior unchanged — still refuses the privileged MCP on non-platform workspaces); performance (none).
No backwards-compat shim / dead code added: No — pure rename to the existing correct symbol; no shim, no dead code, no compat layer.
Memory consulted: Consulted
feedback_no_such_thing_as_flakes(named the mechanism: serialized-merge semantic conflict, not a flake) and the concierge-plugin work memory (project_saas_restart_re_stub_config).SOP checklist
SOP checklist (slug markers)
SOP checklist
APPROVED on current head
dcbd2a2d.5-axis: Correctness: the diff is exactly the main-red symbol unification claimed: recordWorkspacePluginInstall and its entitlement tests now use conciergePlatformMCPName, which is the actual const defined in platform_agent.go and already used by recordDeclaredPlugin in the same file. This resolves the undefined conciergePlatformMCPPlugin compile break without changing the entitlement gate semantics. Robustness: both platform-allowed and non-platform-denied test call sites now exercise the real install name. Security: preserves the fail-closed privileged MCP install gate; no new auth or input surface. Performance: no runtime cost. Readability: aligns the naming with the source/name split documented around conciergePlatformMCPSource and conciergePlatformMCPName.
CI/status note: PR diff is small/non-empty and mergeable; Platform Go was still running/pending in the status list I checked, with several other checks already green and gate-check red due review/policy state. Given this is a direct compile-unblock fix, I approve the code but merge should still respect required status policy.
APPROVED on head
dcbd2a2d5d.Urgent main-red fix review: this is a pure symbol correction from the nonexistent conciergePlatformMCPPlugin to the existing conciergePlatformMCPName in one production entitlement gate and three test references. I verified the stale identifier is gone from platform_agent.go/plugins_tracking.go/plugins_tracking_test.go, and conciergePlatformMCPName is the existing install name for the privileged molecule-platform MCP plugin, matching the declaration/entitlement gate target.
5-axis: correctness restores compilation and preserves the intended privileged plugin gate; robustness is covered by the existing platform-vs-workspace entitlement tests now referencing the real symbol; security behavior is unchanged and remains fail-closed for non-platform workspaces; performance/readability impact is nil/minimal. CI was not green when checked (SOP/review gates failing and build-related contexts pending), so merge should still wait for branch protection, but the code fix itself is sound.
/sop-ack comprehensive-testing-performed
/sop-ack local-postgres-e2e-run
/sop-ack staging-smoke-verified-or-pending
/sop-ack root-cause-not-symptom
/sop-ack five-axis-review-walked
/sop-ack no-backwards-compat-shim-dead-code-added
/sop-ack memory-consulted
/sop-ack 1
/sop-ack 2
/sop-ack 3
/sop-ack 4
/sop-ack 5
/sop-ack 6
/sop-ack 7