Changelog

Phase-by-phase shipping log. Most-recent first.

Phase 47: Imported campaign lifecycle (May 11 2026)

Closed the gap where the bidding ladder assumed every campaign started at Stage 1 Manual CPC. Imported campaigns can now arrive at any rung and the agent picks up management from where they are. 5-component architecture:

  • Stage classifier (pure function, no I/O)
  • Configuration audit with health classifications
  • New campaigns_stage_history table with append-only transitions
  • Diagnostic rules that ladder-gate on agent_managed_since
  • BiddingLifecyclePanel UI on every campaign detail page

Sub-phases shipped same week:

  • 47.1: google_ads_started_at column, ready_for_target_roas fallback for imports, external_change capture pre-approval, pending-state UI, history backfill
  • 47.2: MAX hands-free auto-approves imported audits (except misconfigured)
  • 47.3: Manual "Optimize Now" button respects MAX hands-free, auto-executes on click
  • 47.4: Learning-phase respects google_ads_started_at, real-time notifications on auto-execute + auto-rollback
  • 47.5: Onboarding updates to surface hands-free in plan + welcome + import banner
  • 47.6: Public docs site (you are reading it)

Phase 46: Conversion optimization sweep (May 2026)

  • Marketing site conversion-rate overhaul (15 items)
  • Per-user call-minute usage tracking + Pro 100min/mo visibility + overage cents tracking
  • Cannibalization ownership direction fix
  • UI dedup feedback consumer
  • pause_campaign + enable_campaign executors with rollback support

Phase 45: GA4 Key Events + funnel attribution (May 2026)

  • signup_completed event fires from onboarding welcome page
  • GA4 Key Events registered via Admin API (8 events)
  • Funnel events tagged with campaign_id + ad_group_id meta
  • Per-campaign GA4 attribution replaces fragile pagePath matching

Phase 44: Continuous RSA headline refresh (May 2026)

  • Two-tier swap priority: impression-starved (primary) vs CTR-laggard (fallback)
  • Character-bigram cosine similarity rejects near-duplicates
  • Gemini generates 10 candidates, Claude Haiku picks the best
  • Single-swap-per-cycle for clean outcome attribution
  • Tier 1 auto-eligible when impressions ≥ 2000 + share < 1%

Phase 43: Agent knowledge cache layer (May 2026)

  • 3-layer expert-knowledge markdown playbook injected into every agent-reason call
  • Anthropic prompt caching with 1h TTL (extended-cache-ttl beta header)
  • ~50KB universal knowledge + ~2KB per-trigger system prompt
  • Hit ratio + USD-saved telemetry per session

Phase 42: Bandit Lab + hierarchical priors (May 2026)

  • Thompson sampling on per-element funnel arms (sticky CTA, hero image, step copy)
  • Beta posteriors at the edge worker (Cloudflare)
  • Hierarchical priors (λ=0.2) seed new arms with fleet-wide category evidence
  • Bandit Lab read-only UI on the Tracking tab

Phase 40: Per-campaign landing page analytics (April 2026)

  • Funnel events tagged with campaign_id + ad_group_id at dataLayer
  • GA4 custom dimensions auto-registered
  • Scroll-depth (25/50/75/100%) + time-on-step tracking
  • PageSpeed multi-category audit (perf + a11y + best-practices)
  • 3 new LP-health diagnostic rules in agent-optimize
  • Analytics tab on campaign detail (MAX tier)

Phase 38: Hands-free + blast radius + auto-rollback (April 2026)

The phase that made "done-for-you" real:

  • Blast-radius classifier (surgical / meaningful / large / legally_dicey)
  • Per-rec auto-execute gate with rate limits + circuit breakers + kill switch
  • measure-outcomes cron with tiered T+24h/T+7d/T+14d windows
  • Auto-rollback on worsened verdict
  • User-level circuit breaker after 3 rollbacks in 30 days
  • Rule-level success rate monitor (fleet-wide aggregation)
  • Weekly digest email with signed rollback links

Phase 36: ROI closed loop (April 2026)

  • 4-action conversion split per campaign
  • UPLOAD_CLICKS_REVENUE starts secondary, promotes to primary on 30 paid invoices/30d
  • Jobber paid invoice → Google Ads offline conversion upload
  • Predictive LTV multipliers for recurring categories
  • GCLID 85-day expiration handling
  • Bidding ladder auto-promotion via agent-optimize