Same reasoning as scheduled-emails.json: it's mutated by the running
app (site banner content), not source. readBanner() already falls
back to sane defaults when the file is missing, so untracking it is
safe for fresh checkouts.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
It's mutated by the running app (scheduled job queue), not source -
committing it churns the repo with live recipient/message content.
Kept on disk, just untracked; a fresh checkout will get an empty
store created on demand by ensureStore().
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>