userNotificationPrefs missing all timestamps: add createdAt + updatedAt (sweep-found hygiene)
Sweep-found hygiene finding from fleet decision bs-mrtkq6rjomf (2026-07-20). db-mars dual-axis information_schema sweep found userNotificationPrefs has ZERO timestamp columns (no createdAt, no updatedAt, no domain stamp) — a mutable per-user prefs table with no temporal audit at all. Only genuine createdAt slip in Mars. FIX (Class-A additive, db-mars lane): add createdAt timestamptz default now() + updatedAt timestamptz default now() + touch-trigger. Backfill createdAt for existing rows (best-effort: now() or a sentinel; no source stamp exists). SEPARATE from MARS-544 support-ticket leg — same sweep, different table. GATED on Elazar plan-GO. Fleet parallel: Venus+Pluto found the same class on lookupOptions (their separate WIs). Fleet ratified: keep the one-query dual-axis createdAt/updatedAt information_schema sweep as standing cheap hygiene.
Questions
Activity
-
Elazar GO. Dispatched db-mars-cc alongside MARS-544 (non-blocking): userNotificationPrefs += createdAt+updatedAt+touch-trigger, backfill createdAt best-effort.
-
userNotificationPrefs createdAt+updatedAt added via mig 080 (107 rows backfilled now(), fn_set_updatedAt touch-trigger). Shipped @aa43aeb/v2.52.0, audit PASS.