fix: only trigger resync for genuinely new collections
Previously, migrateSchema checked ALL collection tables for emptiness on
every startup. Collections with 0 rows (e.g. blocks when nobody has
blocked anyone) would trigger a full resync of all repos on every
restart, creating an infinite loop.
Now we track which tables were just created this startup and only trigger
resync for those genuinely new collections.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>