a local-first atmospheric chalky task planner

app: snooze a recurring occurrence — "Snooze 1 day" (the occurrence's day + 1) or "Snooze to other day" (reveals a date field, min = day + 1) in the right-click menu and the details panel's new "Snooze this day" row, offered only on unfinished occurrences. store.snoozeOccurrence skips that day from the series and drops a detached one-off copy (title, color, notes, subtasks with fresh ids) onto the target day, appended, as one undo step — no lexicon change, the occurrence record stays a pure done/skipped decision. New date.ts shiftKey steps by calendar date so DST can't double a day. The revealed date field focuses and calls showPicker() where allowed; the swap is height-pinned (menu row 29px like an item, panel row 38px) so neither the menu nor the card shifts. Verified in the preview: Mon→Fri via custom date and Tue→Wed via 1 day land the copy and empty the source day, one undo restores both, menu stays 188px and the card 561.5px across the reveal master


+207 -4
4 changed files