useMarkNotificationRead posted readAt: Date.now(). readAt is a timestamp column, so a millisecond number makes Postgres reject the write with 22008 (datetime_field_overflow) — every "mark this read" tap 500s, the row never updates, and the unread badge never clears.
Measured against a real api: number → 500, ISO string → 200, omitted → 200.
Ships with the regression test the original fix lacked — four tests on the wire format, verified to fail against the bug rather than merely pass against the fix.
Full changelog: v0.2.5...v0.2.6
🤖 Generated with Claude Code