Skip to content

chore(mctl-agents): bump 1.4.0 → 1.7.0 (3 features in one cycle) - #66

Merged
mashkovd merged 1 commit into
mainfrom
feat/mctl-agents-1.7.0
Apr 29, 2026
Merged

mashkovd merged 1 commit into
mainfrom
feat/mctl-agents-1.7.0

Conversation

@mashkovd

Copy link
Copy Markdown
Member

Summary

Single bump skipping the 1.5.0 / 1.6.0 intermediates — all three features land atomically with one ArgoCD sync.

Why one PR not three

There is no functional benefit to a staged rollout — each feature is net-additive and gated by env / state:

A staged 1.5 → 1.6 → 1.7 rollout would burn 2× extra cycles (Copilot review + ArgoCD sync per bump) for zero risk reduction.

What 1.7.0 carries

  • mctl-agents#8 — mctl-docs falls back to GitHub REST API via WebFetch / curl when sibling clones are absent. Ports deploy: liberty/test #1 from Russian-base to English; Copilot SWE Agent autonomously fixed the jq orphan-commit filter (<= 1 → == 1) and updated the deprecated diff media type.
  • mctl-agents#9 — orchestrator rotates _mentor/digest/ files older than 8 ISO weeks into digest/archive/. Deterministic, zero-token. Ports deploy: libertex/nginx #3 from Russian-base; Copilot added an OSError guard so a permission/NotADirectoryError on archive/ doesn't abort the whole mentor run.
  • mctl-agents#10 — Tier 2 implementer scaffold (orchestrator/run_implementer.py + 7 implementer.md sub-agents + Dockerfile gh CLI install + IMPLEMENTER_BUDGET_USD=$3.00). Ports deploy: developers/test #2 from Russian-base; Copilot fixed three real bugs: hardcoded developer path as DEFAULT_STATE_DIR, finally block always deleting clone dir despite "keep on failure" comment, and a global os.environ["PROPOSAL_DIR"] mutation that leaked between proposals.

Out of scope (operational follow-ups for tier-2 activation)

  • Vault key: secret/platform/mctl-agents/github-token (fine-grained PAT with repo write on mctlhq/*).
  • ExternalSecret: extend mctl-agents-secrets to surface as GITHUB_TOKEN env in the workflow pod.
  • ClusterWorkflowTemplate: cwft-mctl-agents-tier2.yaml mirroring -run but invoking orchestrator.run_implementer with service / slug parameters.
  • MCP tool: mctl_trigger_implementer in mctl-api for on-demand triggers.

Image readiness

Tag 1.7.0 build: https://github.com/mctlhq/mctl-agents/actions/runs — completed:success.

Test plan

  • All three tag builds (1.5.0, 1.6.0, 1.7.0) green.
  • After merge: wait ≥3 min for ArgoCD sync (per memory rule), verify live CWT image=1.7.0 via kubectl, then trigger mctl_trigger_mentor_only to smoke-test that the new mentor (with rotation) runs cleanly.

Single bump skipping the 1.5.0 / 1.6.0 intermediates — all three
features land atomically with one ArgoCD sync. There is no functional
benefit to a staged rollout (each feature is net-additive and gated
by env: tier-2 needs GITHUB_TOKEN which isn't set yet, github-fallback
in mctl-docs needs the same, digest rotation only fires when there are
>8 weeks of digests on disk and we currently have one), so a single
PR saves us 2× (Copilot review + ArgoCD sync) cycles.

The 1.7.0 image carries:
- mctl-agents#8 (1.5.0) — mctl-docs falls back to GitHub REST API
  via WebFetch / curl when sibling clones are absent (ports the
  feature from #1 to English main; Copilot autonomously fixed jq
  filter + deprecated diff media type).
- mctl-agents#9 (1.6.0) — orchestrator rotates _mentor/digest/
  files older than 8 ISO weeks into digest/archive/. Deterministic,
  zero-token (ports #3; Copilot added an OSError guard).
- mctl-agents#10 (1.7.0) — Tier 2 implementer scaffold:
  orchestrator/run_implementer.py + 7 implementer.md sub-agents +
  Dockerfile gh-CLI install + IMPLEMENTER_BUDGET_USD=$3 (ports #2;
  Copilot fixed hardcoded developer path, finally-block cleanup
  semantics, and a global os.environ mutation that leaked between
  proposals).

Tier-2 scaffold is dormant until follow-up infra lands separately:
- Vault: secret/platform/mctl-agents/github-token (PAT, repo write
  on mctlhq/*)
- ExternalSecret update to surface as GITHUB_TOKEN env
- New CWT cwft-mctl-agents-tier2.yaml invoking
  orchestrator.run_implementer
- MCP tool mctl_trigger_implementer in mctl-api

SERVICE_AGENT_BUDGET_USD stays $5.00. No env changes.
@mashkovd

Copy link
Copy Markdown
Member Author

@copilot review

Copilot AI commented Apr 29, 2026

Copy link
Copy Markdown

@copilot review

Review: ✅ LGTM — single-line bump, no issues introduced

Change
One line: ghcr.io/mctlhq/mctl-agents:1.4.0 → 1.7.0 (commit dc23a5d). No structural changes.

What I checked

Area Finding
YAML validity All yamllint findings (line-length, braces) are pre-existing — identical in both d1cfb52 (before) and dc23a5d (after). Zero regressions introduced.
IMPLEMENTER_BUDGET_USD missing Intentional — Tier 2 implementer is dormant until the activation follow-ups land (Vault key, ExternalSecret, new CWT). The orchestrator won't invoke the implementer without those.
GITHUB_TOKEN missing Intentional — mctl-agents#8 degrades gracefully when the token is absent ("no signal: rate-limited"). Wiring it via ExternalSecret is an explicit out-of-scope follow-up.
activeDeadlineSeconds: 3600 Still sufficient for the current full / mentor-only / single-service run modes.
onExit: notify-telegram Unaffected; fires after orchestrator regardless of image version.
Security No secrets hardcoded, no new attack surface.

Verdict: Change is correct, minimal, and the PR description thoroughly justifies skipping the 1.5.0 / 1.6.0 intermediates. Safe to merge.

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.

2 participants