Skip to content

logly/mureo

v0.9.17 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

Summary

AI summary

Updates PRs in this release, meta-ads, and https://github.com/logly/mureo/issues/151 across a mixed release.

Changes in this release

Feature Medium

Adds `create_lead_form` support for advanced fields (context_card, thank_you_page, is_higher_intent, conditional_questions_choices).

Adds `create_lead_form` support for advanced fields (context_card, thank_you_page, is_higher_intent, conditional_questions_choices).

Source: llm_adapter@2026-05-29

Confidence: high

Feature Medium

Adds `create_lead_ad_creative` to wire Instant Form IDs into image and video Lead Ads.

Adds `create_lead_ad_creative` to wire Instant Form IDs into image and video Lead Ads.

Source: llm_adapter@2026-05-29

Confidence: high

Feature Medium

Adds `update_lead_form` to retire or un‑retire forms via status=ACTIVE|ARCHIVED.

Adds `update_lead_form` to retire or un‑retire forms via status=ACTIVE|ARCHIVED.

Source: llm_adapter@2026-05-29

Confidence: high

Feature Medium

Adds `duplicate_lead_form` to copy a form including advanced fields (lossy fields documented).

Adds `duplicate_lead_form` to copy a form including advanced fields (lossy fields documented).

Source: llm_adapter@2026-05-29

Confidence: high

Feature Medium

Adds automatic pagination to `get_leads` and `get_ad_leads` with a 10 000‑page safety cap.

Adds automatic pagination to `get_leads` and `get_ad_leads` with a 10 000‑page safety cap.

Source: llm_adapter@2026-05-29

Confidence: high

Feature Medium

Adds `export_leads_to_csv` to write a stable‑column CSV with CSV‑injection protection and multi‑value answer joining.

Adds `export_leads_to_csv` to write a stable‑column CSV with CSV‑injection protection and multi‑value answer joining.

Source: llm_adapter@2026-05-29

Confidence: high

Feature Medium

Adds four MCP tool entries for Instant Form lifecycle management.

Adds four MCP tool entries for Instant Form lifecycle management.

Source: llm_adapter@2026-05-29

Confidence: high

Feature Low

Extends `_LEAD_FORM_FIELDS` wire‑format expansion without breaking existing callers.

Extends `_LEAD_FORM_FIELDS` wire‑format expansion without breaking existing callers.

Source: llm_adapter@2026-05-29

Confidence: high

Bugfix Low

Fixes silent truncation of leads when a form exceeds 100 entries by implementing automatic pagination.

Fixes silent truncation of leads when a form exceeds 100 entries by implementing automatic pagination.

Source: llm_adapter@2026-05-29

Confidence: low

Refactor Low

Translates 1200 lines of Japanese docstrings and comments to English across 55 files.

Translates 1200 lines of Japanese docstrings and comments to English across 55 files.

Source: llm_adapter@2026-05-29

Confidence: high

Full changelog

Instant Form full coverage — completion + code-quality pass

Caps the four-PR sequence that lands Meta Instant Form end-to-end in mureo. Combined release for everything between v0.9.13 and HEAD: three feature PRs (v0.9.14, v0.9.15, v0.9.16 intermediate, then v0.9.17 gap closure) plus a codebase-wide translation chore.

Closes umbrella #151 (Meta Instant Form full coverage).

Highlight — Instant Form end-to-end

mureo.meta_ads now covers the full Instant Form lifecycle from form authoring through ad deployment to lead retrieval:

  • Authoring: create_lead_form supports advanced fields (context_card intro screen, thank_you_page completion screen with CTA, is_higher_intent 3-step form, conditional_questions_choices branching). Defaults are no-op so existing callers keep working.
  • Deployment: new create_lead_ad_creative(name, page_id, form_id, link_url, ...) builds the object_story_spec.link_data.lead_gen_form_id wiring for image Lead Ads and object_story_spec.video_data.call_to_action.value.{lead_gen_form_id, link} for video Lead Ads. CTA defaults to SIGN_UP.
  • Lifecycle: new update_lead_form(form_id, status=ACTIVE|ARCHIVED) for retire / un-retire; duplicate_lead_form(form_id, page_id, new_name) copies a form including the advanced fields. Lossy fields (legal_content_id, gdpr_required / custom_disclaimer, question_page_custom_headline) are documented as not-copied.
  • Lead retrieval: get_leads / get_ad_leads now paginate automatically (follow paging.next cursors, extracting the after token to avoid the BASE_URL-prepend trap), so forms with >100 leads no longer truncate silently. Pagination logic consolidated into a private _paginate_leads helper shared with export_leads_to_csv. Safety cap _MAX_LEAD_PAGES = 10_000 guards against misbehaving cursors.
  • CSV export: export_leads_to_csv(form_id, output_path) writes a stable-column-order CSV. Defends against CSV injection by prefixing leading = + - @ \t \r with '. Multi-value answers join with | so commas in one value don't get confused with separators. PII never reaches the log.
  • MCP tools: 4 new entries (meta_ads_creatives_create_lead, meta_ads_lead_forms_update, meta_ads_lead_forms_duplicate, meta_ads_leads_export_csv) plus an extended meta_ads_lead_forms_create schema. The _mureo-meta-ads skill documents the full workflow under "Lead Generation (Instant Form, end-to-end)".

Code-quality pass

Across the 0.9.x rollout Japanese docstrings and comments accumulated unintentionally. This release sweeps them out in one pass (1200 lines translated across 55 files) so the published PyPI artifact has English code throughout.

Intentional retentions: LLM prompt constants, domain-detection constants (_INDUSTRY_KEYWORDS, _SUPERLATIVE_CLAIMS, etc.), BYOD locale aliases, the bilingual UI catalog, configure-UI display strings, test fixture data values (verify non-ASCII handling), and JP test method names (renaming risks breaking IDE / external test ID references).

PRs in this release

  • #155 — feat(meta-ads): end-to-end Instant Form deployability via create_lead_ad_creative (0.9.14)
  • #156 — feat(meta-ads): Instant Form lifecycle — status update + duplicate (0.9.15)
  • #158 — feat(meta-ads): Instant Form CSV export + advanced form authoring (0.9.16)
  • #159 — feat(meta-ads): Instant Form HIGH gap closures — video creative + pagination + duplicate widening (0.9.17)
  • #160 — chore(i18n): translate Japanese docstrings + comments to English across the codebase

Backward compatibility

100% backward compatible. All new helpers are additive. New optional kwargs default to no-op. _LEAD_FORM_FIELDS was extended (wire-format expansion only) so existing callers reading the old fields keep getting them. No signature changes; no storage shape changes.

Upgrade

pip install --upgrade mureo

Plugin authors and existing operators do not need any code changes. The Instant Form workflow becomes usable end-to-end through the new tools; existing tools keep their semantics.

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]