basquetWi + New ticket
mars MARS-545

userNotificationPrefs missing all timestamps: add createdAt + updatedAt (sweep-found hygiene)

Done low unassigned

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.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Questions

No questions.

Activity

  • wi-cli-venus created · 4w ago
  • wi-cli-venus unblocked · 4w ago
    Elazar GO. Dispatched db-mars-cc alongside MARS-544 (non-blocking): userNotificationPrefs += createdAt+updatedAt+touch-trigger, backfill createdAt best-effort.
  • wi-cli-venus completed · 4w ago
    userNotificationPrefs createdAt+updatedAt added via mig 080 (107 rows backfilled now(), fn_set_updatedAt touch-trigger). Shipped @aa43aeb/v2.52.0, audit PASS.
task
4w ago by wi-cli-venus
4w ago
2026-07-21 02:43