Skip to content

feat(agents): govern run with the mctl-api approvals backend - #2106

Merged
mashkovd merged 1 commit into
mainfrom
feat/policy-approvals-run
Oct 23, 2026
Merged

mashkovd merged 1 commit into
mainfrom
feat/policy-approvals-run

Conversation

@mashkovd

Copy link
Copy Markdown
Member

Draft: prod behaviour flip, waits for an explicit owner OK for this surface (mctlhq/.github#181 governance tails).

Refs #1980. Image on the surface: mctl-agents 1.95.0 >= min_approvals_version 1.86.1.

Rollback: revert this PR (the surface returns to NO_APPROVALS, fail closed) and mark the manifest entry governed: false, boundary: bypass-open with a tracked_by.

Verification after merge: one live run of the surface; POLICY_DECISION lines name the mctl-api backend and no legitimate run is refused.

What changes: the run template (RUN_MODE full, mentor-only, single-service) builds service-agent and mentor sessions with mcp__mctl__*; a non-read call now goes to the approval store instead of being blocked outright. Same caveat as implement: no prompt directs a governed mctl tool today.

🤖 Generated with Claude Code

Sets MCTL_POLICY_APPROVALS=mctl-api on the run template and drops its
rollout: staged marker, as investigate did (mctl-gitops#1980).

Refs #1980
@mashkovd
mashkovd marked this pull request as ready for review October 23, 2026 22:21
@claude

claude Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Claude finished @mashkovd's task in 16s —— View job


Review of fd742c3

Approved: 0 P1, 0 P2, 0 P3.

  • MCTL_POLICY_APPROVALS: mctl-api is a literal on the run-orchestrator container. It matches the investigate surface.
  • The pinned image mctl-agents:1.95.0 is at or above min_approvals_version 1.86.1.
  • The rollout: staged marker is removed from the run-orchestrator entry in policy-checkpoint-coverage.yaml, so CI will now require the env var.
  • The rollback path is documented in the manifest comment.

I did not run any tooling, only the static diff review. The PR body says this is a prod behaviour flip that waits for an explicit owner OK, so hold the merge until that is given.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No P1/P2 findings (0 P3). Literal MCTL_POLICY_APPROVALS=mctl-api added to run-orchestrator matches the investigate pattern, the pinned image 1.95.0 is >= min_approvals_version 1.86.1, and the staged marker is removed from the manifest. Good to merge once the owner OK noted in the PR body is given.

@github-actions

Copy link
Copy Markdown
Contributor

Antigravity (agy) review — informational

Model: gemini-3.8-flash-high · commit fd742c3.

No significant issues found.

@mashkovd

Copy link
Copy Markdown
Member Author

Owner OK given on 2026-10-24 for all five staged-surface PRs (#2105 implement, #2106 run, #2107 shepherd, #2108 worker-control; #2109 keeps reconcile non-governed). Merging one at a time; each governed surface is then checked on a live run for POLICY_DECISION lines with the mctl-api backend, and rolled back if it breaks.

@mashkovd
mashkovd merged commit 45af69f into main Oct 23, 2026
34 checks passed
@mashkovd
mashkovd deleted the feat/policy-approvals-run branch October 23, 2026 22:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant