What I did

  • Settled how the data crosses into the new database: a cutover, not a period of running both, and three rounds fixed the eight parameters that turn a direction into something executable.
  • The crossing ran: lifalign-prod holds 5,236 rows, every table balances, and I checked on screen that the data is where it belongs.
  • The first sign-in to the new application looped — three different errors in a row had one cause; fixed.
  • Moved the functions to Frankfurt; until now a request from Prague was executed in Washington.
  • Found that the daily 16:00 deploy I had set up the day before has never run: zero scheduled runs, and production is 95 commits behind.

What the factory did

  • Finished moving the reminder scheduler onto the API; the web reaches Supabase nowhere any more.
  • Finished binding the colours to tokens — no CSS module in the web writes a colour now, and the exception list is deleted rather than left empty.
  • Converted the documents in lifalign/designs and the last two decision records to English, in batches overnight.
  • Refuses to store a retirement older than the row itself, on every table that can be retired.
  • Deleted the web’s unreachable copy of the day’s rules and repointed what named it.