Skip to content

logly/mureo

v0.10.13 Feature

This release adds 2 notable features for engineering teams evaluating rollout.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

advertising agentic-ai ai-agents claude-code cli codex
+11 more
cursor facebook-ads gemini-cli google-ads marketing marketing-automation mcp meta-ads model-context-protocol python search-console

Affected surfaces

auth rbac breaking_upgrade

Summary

AI summary

Added plugin guardrail parity, reversible capture protocol, and fixed reports crash on missing account_id.

Full changelog

Added

  • Plugin guardrail parity (#324). Third-party MCP plugin tools now get the same guardrails as the built-in Google/Meta tools: server-side inputSchema validation (declared real-spend bounds enforced before dispatch), a STRATEGY.md reminder after a mutating plugin call, and executable rollback for a plugin-declared reversal that names a registered, non-destructive plugin tool.
  • Runtime-correct plugin reversal capture (#327, #328). New optional MCPReversibleToolProvider protocol: a plugin can implement capture_reversal to return a reversal carrying the actual entity id + the prior state it reads itself, captured before the mutation — so a plugin status toggle becomes reversible via rollback_apply, mirroring the built-in before-state capture. Plugins that don't opt in keep their static meta["mureo"]["reversal"] behavior.

Fixed

  • Reports view crash on missing account_id (#329). The read-only Reports dashboard crashed with KeyError: 'account_id' (empty summary + a per-poll traceback flood) for an agent-/hand-authored STATE.json whose platforms omit account_id. The tolerant read now defaults a missing account_id to "" so the platform's totals/periods still render, and the strict-fail → tolerant-retry path + per-entry skips now log at DEBUG instead of WARNING (supersedes #323).
  • Phantom plugin mutations (#325). A plugin that returned an "API error: ..." result without raising was promoted to action_log as a phantom mutation (and a phantom executable rollback). The plugin dispatch path now skips that promotion for an error-envelope result, matching built-in behavior.
  • STATE.json schema drift (#330, #331). Skills now pin the canonical STATE.json schema for the Claude Code Write path — tool output uses name, but STATE.json requires campaign_name, and platform entries require account_id — preventing the field-name drift that made the Reports view skip campaigns.

Upgrade with mureo upgrade (also refreshes deployed skills and restarts the always-on service), or pip install -U mureo.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track logly/mureo

Get notified when new releases ship.

Sign up free

About logly/mureo

Framework for AI agents (Claude Code, Cursor, Codex, Gemini) to operate Google Ads, Meta Ads, and Search Console. Grounded in a local STRATEGY.md — not metric-chasing. Defense-in-depth security, local-first. Apache 2.0.

All releases →

Related context

Beta — feedback welcome: [email protected]