This release adds 2 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+11 more
Affected surfaces
Summary
AI summaryAdded 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
inputSchemavalidation (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
MCPReversibleToolProviderprotocol: a plugin can implementcapture_reversalto 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 viarollback_apply, mirroring the built-in before-state capture. Plugins that don't opt in keep their staticmeta["mureo"]["reversal"]behavior.
Fixed
- Reports view crash on missing
account_id(#329). The read-only Reports dashboard crashed withKeyError: 'account_id'(empty summary + a per-poll traceback flood) for an agent-/hand-authored STATE.json whose platforms omitaccount_id. The tolerant read now defaults a missingaccount_idto""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 toaction_logas 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
Writepath — tool output usesname, but STATE.json requirescampaign_name, and platform entries requireaccount_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
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.
Related context
Related tools
Beta — feedback welcome: [email protected]