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.
Matches the pattern already in place for the other domain repos: a
short domain-specific README instead of the generic campaigns-template
one (also fixing a stray "from" -> "from_email" field-name error), and
a sample welcome campaign using the correct "cateconners-list" name
from the start.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>