Handoff: merge branch campaigns (CreatorTrack Campaigns app)¶
URL: https://mkdocs.justinsforge.com/memory/handoffs/campaigns-branch-merge-2026-07-06/
Date: 2026-07-06 For: integrator agent (single AI-reconciled merge, WDA doctrine)
Intent (what this branch does)¶
Adds the read-only Campaigns app: cross-brand Mautic+Resend email analytics. New campaigns.* PG schema (migration 20260706T145955_campaigns_campaigns_schema.sql), ingest jobs + token route (CAMPAIGNS_JOBS_TOKEN, already in ~/.forge-secrets/creatortrack-auth.env), app registration in lib/apps.ts, pages under app/(suite)/campaigns/. 7 commits, 4c55b80..062904e, worktree ~/forge-suite-wt/campaigns, dev slot :3063 / DB ct_campaigns. Everything verified against live Mautic/Resend; full detail + deploy checklist in reference_creatortrack_campaigns_app.
Merge watch-points¶
lib/apps.tsis the ONLY shared file touched: one entry appended at the APPS array tail (marker-fenced==== BEGIN campaigns app ====) plus"campaigns"added toOWNER_ONLY_APP_IDS. The email-ops / other branches also append here; reconcile by keeping all entries.- Migration is timestamp-named (no collision) and idempotent; validate on a fresh base clone per doctrine, then apply to live
lifeosafter merge. - Post-merge deploy: restart
creatortrack-prodwithCAMPAIGNS_JOBS_TOKENin env,systemctl enable --now forge-creatortrack-campaigns-sync.timer, then teardown slot (worktree +DROP DATABASE ct_campaigns).
[Claude Code]