Only the campaign(s) whose files changed in this push get resolved and
diffed against listmonk now, instead of every campaign every time --
falls back to a full scan automatically if the before-commit can't be
determined. fetch-depth: 0 so that commit is always available to diff
against locally.
Sent/running campaigns are now skipped (not rejected) during sync, so a
finished campaign like 2026-07-23-iron-rose-proof-approved no longer has
to be deleted just to keep sync green.
Fixes a spurious "changed" flag on any campaign without an explicit
template_id, which was re-syncing and re-previewing campaigns like
welcome/campaign.md on every unrelated push.
Restyle the email template to Sunflower Acres' forest green/cream/sun
yellow brand, rename the default listmonk template, replace the README
with client-specific instructions, and add a real welcome campaign.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>