The original comment claimed that `DEFAULT 0` "only applies to *new*
inserts on PostgreSQL — existing rows are not backfilled". That's
wrong for PG11+: the fast-path `ADD COLUMN ... DEFAULT` materialises
the default for every existing row in O(1) time without rewriting the
table. The comment confused future readers about why the Wizard mount
treats `NULL` as 0 (defensive against the legacy ambiguity, not
because of any general PG behaviour).
Rewrite to match reality, and point at Migration 0060 as the follow-on
that flips the column to NOT NULL.
Fix-O / code-M8.
Persists the highest step a user reached in the rebuilt /onboarding flow
so closing the tab mid-flow no longer wipes progress. Nullable Int
default 0; encoding mirrors the new wizard:
0 welcome / 1 goals / 2 source / 3 baseline / 4 done
Migration is idempotent (ADD COLUMN IF NOT EXISTS) so it tolerates
hand-applied dev-DB state without diverging from the migration history.