This release adds 2 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+11 more
Summary
AI summaryUpdates PRs in this release, meta-ads, and https://github.com/logly/mureo/issues/151 across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| 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_formsupports advanced fields (context_cardintro screen,thank_you_pagecompletion screen with CTA,is_higher_intent3-step form,conditional_questions_choicesbranching). Defaults are no-op so existing callers keep working. - Deployment: new
create_lead_ad_creative(name, page_id, form_id, link_url, ...)builds theobject_story_spec.link_data.lead_gen_form_idwiring for image Lead Ads andobject_story_spec.video_data.call_to_action.value.{lead_gen_form_id, link}for video Lead Ads. CTA defaults toSIGN_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_leadsnow paginate automatically (followpaging.nextcursors, extracting theaftertoken to avoid theBASE_URL-prepend trap), so forms with >100 leads no longer truncate silently. Pagination logic consolidated into a private_paginate_leadshelper shared withexport_leads_to_csv. Safety cap_MAX_LEAD_PAGES = 10_000guards 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 \rwith'. 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 extendedmeta_ads_lead_forms_createschema. The_mureo-meta-adsskill 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
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]