What I did

  • Settled how reminders will run: a cron runs SQL that only checks whether waking the backend is worth it, and the backend does the sending.
  • Had production deploy once a day at 16:00.
  • Dropped the “add as a flow moment” action; the Flow lístek no longer takes anything over from a todo.
  • Settled that emptying the text in the diary leaves an empty record — the diary has no delete.
  • Turned down the proposed fix for the false “Úkol se mezitím změnil” warning: the guard would skip a write that changes nothing, but the application makes exactly that write on purpose, so that a save with no change still passes the concurrent-edit check.

What the factory did

  • Opened the move of the reminder scheduler onto the API, the last place the web reached Supabase directly; a cron in the database now wakes it only when there may be something to send.
  • Moved Historie plánů and the Dnes dashboard behind the API, and thinned Uzavření dne down to one read.
  • Gave every foreign key an index on its own side; Postgres indexes only the target, so deleting a parent scanned the whole child table.
  • Named the columns on on delete set null across seven composite keys; without the list it also cleared user_id, which may not be empty.
  • Readiness now refuses a replica that does not hold the issuer’s signing keys and so could not verify a sign-in token.
  • Made the build fail and name the method when an adapter does not wrap its database work so a technical failure arrives above as one known type; nothing watched for the omission before.
  • Tested for the first time what happens when saving a form fails — until now the tests only knew success: an expired session sends you to the login, a server outage is not passed off as a mistake in what you typed, and a refused form does not wipe what you wrote.
  • Bound the colours in the seven Detail dne CSS modules and in the shared components to tokens, and added a detector for every syntax that can write a colour.