Stop baking paper-trade runtime state into the image
The 2026-04-13 /gauntlet freeze had a second half: even after fixing the backfill script to read from Supabase, every redeploy reverted the in-image shadow-backfill.json to whatever snapshot was committed to git (Apr 7, 72
The 2026-04-13 /gauntlet freeze had a second half: even after fixing the backfill script to read from Supabase, every redeploy reverted the in-image shadow-backfill.json to whatever snapshot was committed to git (Apr 7, 72 bets) until the next settle cron fired hours later.
- .dockerignore + .gitignore: data/paper-trade/ledger.json,
shadow-backfill.json, shadow-config-results.json. Real source of truth is Supabase; filesystem copies are caches.
- git rm --cached the three tracked files (untracks, leaves on disk).
- scripts/entrypoint.sh: boot the Next.js server, then run shadow-backfill
in the background 15s later. Fresh containers hydrate /gauntlet in ~2min instead of waiting up to 4h for the next settle cron.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>