Two tables had row-level security switched off entirely
Trades and strategies were created before the app had accounts, so nobody had ever enabled RLS on them. With the anon key in the bundle, that meant every trade in the database was readable by anyone who opened a console. In a single-user app that is harmless. One signup later it is a breach.
Enable RLS on both, add the owner column, and write the owner-only policy in the same migration that introduces accounts.