Repository navigation
chore(mctl-api): disable the legacy DevLoop approver relay - #1913
Conversation
mctl-agents 1.76.0 approves DevLoops through a server-held action-approval grant (wi_ -> we_ -> aar_ -> art_), so the free-text approver relay that mctl-api#571 kept for the transition is no longer needed. Leaving it on keeps a path where the service principal names any approver it likes. Verified before flipping: the first post-deploy DevLoop (dev-loop-mctlhq-mctl-agents-655) was approved through grant aar_95e18f44c2824b9f88cd2df091383b41, consumed once, with one mctl-agents-approve and no approver.legacy_relay in the audit log. The five pre-1.76.0 loops still parked at approval were abandoned, so none of them can hit 409 approval_grant_missing after this change. Refs mctlhq/mctl-agents#636, mctlhq/mctl-api#571 Claude-Session: https://claude.ai/code/session_01BKnkncXtavYRiryZ2k33nM
|
Claude finished @mashkovd's task in 1m 12s —— View job Review complete ✅
Diff: single env var addition ( Approved via |
Antigravity (agy) review — informationalModel: gemini-3.8-flash-high · commit No significant issues found. |
Summary
Sets
MCTL_AGENTS_APPROVE_LEGACY_APPROVER: "false"on mctl-api (platform-gitops/bootstrap/templates/mctl-platform/mctl-api.yaml). This closes the free-text approver relay that mctl-api#571 kept while mctl-agents moved to grant-based DevLoop approval (mctl-agents#636, released in 1.76.0).With the flag off (per
cmd/api/main.goparseLegacyApprover,internal/api/handlers_write.go,internal/api/handlers_dev_loop.goon mctl-api main):mctl-agents-approvenaming a different approver gets400 legacy_approver_disabledinstead of anapprover.legacy_relayaudit row;aar_grant gets409 approval_grant_missing;Evidence that it is safe now
dev-loop-mctlhq-mctl-agents-655, approved 2026-10-16 16:35Z. mctl-api audit chain:wi_9bf97cb9-acd6-42d5-9cdd-d6f9bc612831has exactly one execution,we_43fa7987-0cda-4281-bdac-7b8cae280603.aar_95e18f44c2824b9f88cd2df091383b41:action_approval.create(13:25Z) →decisionapproved bygithub:mashkovd(16:35:54Z) →consume(16:35:56Z).agent_run_token.mintart_a5ea06f4-f85a-45f0-8fa2-9b2eeb30a091for the samewe_.mctl-agents-approve(16:35:56Z,grant_ref= theaar_,agent_run_id= theart_), status succeeded, thenmctl-agents-implementsubmitted.approver.legacy_relayrow in the window.mctl_abandon_dev_loop(allCompleted, resultabandoned: ...):mctl-api-489,mctl-claude-remote-79,mctl-agents-600,mctl-agents-428,mctl-agents-413. Their proposals stayproposedand can be restarted with a new loop. The only other running loop,.github-161, was approved before this change and is alreadyimplemented.Verification
helm templateofplatform-gitops/bootstraprenders the Application, and the flag lands inspec.sources[0].helm.values.envas the string'false'. Any other value would refuse mctl-api startup.ROLLOUT_MARKERbump is needed.Rollback
Remove the line (empty means on).
Refs mctlhq/mctl-agents#636, mctlhq/mctl-api#571
🤖 Generated with Claude Code
https://claude.ai/code/session_01BKnkncXtavYRiryZ2k33nM