Skip to content

Snooze menu offers "Tomorrow" and "Next week" as duplicate Monday 9:00 AM wake times on Sundays #8740

Description

@vitalyiegorov

Found on a Sunday, fixed on a Sunday — for the ones who work on Sundays only!

What happened

On Sundays, the snooze menu offers two rows that wake the thread at the exact same moment:

  • Tomorrow9:00 AM
  • Next weekMon 9:00 AM

"Next week" is defined as next Monday 9:00 AM, and on a Sunday "tomorrow" is Monday. Two labels, one instant.

Reproduction steps

  1. Have a settled thread in the sidebar (any project).
  2. Wait for a Sunday. 🙂 (Or trust the pinned unit test: localDate(2026, 8, 30, 7, 1) — Sunday, 07:01.)
  3. Hover the thread row, open the snooze menu (clock icon).
  4. Observe five options, two of which point at the same wake time.

Expected

Four options. When two presets resolve to the same wake time, the menu offers one of them — "Tomorrow" is the natural label for the next day.

Actual

Five options, with a duplicated wake target:

Option Wake time
In 1 hour 8:01 AM
In 3 hours 10:01 AM
This evening 6:00 PM
Tomorrow 9:00 AM
Next week Mon 9:00 AM ← same instant as Tomorrow

Impact

Every user, every Sunday, on every client: web sidebar popover, web context menus, the chat-header action menu, and mobile native snooze menus all read the same shared preset list. Small, but it makes the menu look broken on the one day most people see it — and implies "Next week" means something different than it does.

Root cause

resolveSnoozePresets in packages/client-runtime/src/state/threadSettled.ts unconditionally appends both calendar presets. On Sunday, daysUntilMonday === 1, so nextWeek and tomorrow are the same instant.

Suggested fix

Only append "Next week" when it lands on a different instant than "Tomorrow" — a one-line guard in the shared builder, so every surface (web + desktop + mobile) inherits the fix with no per-client changes. Covered by a unit test pinning Sunday 2026-08-30.

Screenshots

Sunday menu from a live dev environment (project names redacted):

Sunday snooze menu before the fix: five options including Tomorrow and Next week at the same Monday 9:00 AM

Live reproduction, before and after the one-line guard:

Before After
before: duplicate wake times after: four options

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions