Skip to content

fix(client): keep coinciding snooze options visible - #31959

Open
sldone wants to merge 1 commit into
pingdotgg:mainfrom
sldone:fix/snooze-weekday-labels
Open

sldone wants to merge 1 commit into
pingdotgg:mainfrom
sldone:fix/snooze-weekday-labels

Conversation

@sldone

@sldone sldone commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

On Fridays, “Tomorrow 09:00” and “Saturday 09:00” resolve to the same wake minute, so the duplicate guard silently drops Saturday. Keep configured weekday names recognizable and combine distinct labels into one row, such as Tomorrow · Saturday (9:00). The first setting still supplies the row ID and wake time; sorting, minute deduplication, and selection semantics stay intact. Settings now explain that coinciding options are combined.

This is a focused fix for the missing configured option reported in #31879; it adds no settings or workflow.

Fixes #31879

Validation:

  • Confirmed regression coverage fails on the original resolver (4 failures), then passes with the fix.
  • vp test run packages/client-runtime/src/state/threadSnoozed.test.ts packages/client-runtime/src/state/customSnooze.test.ts apps/mobile/src/features/threads/threadListV2.test.ts apps/web/src/components/settings/SnoozePresetsSettings.logic.test.ts: 117 passed.
  • vp run check:changed: passed format, lint, both knip checks, typechecks for seven affected packages, adjacent tests, and React Compiler coverage.
  • Chrome on macOS, Friday November 6: configured all six reported presets, reproduced the missing Saturday on the base code, verified the combined row after the fix, and selected it to snooze the thread.
  • Independent agent review: no actionable findings.
  • Native desktop/mobile clients were traced through their shared resolver and selection consumers but were not manually exercised.
Before After
Friday snooze menu before: only Tomorrow is shown Friday snooze menu after: Tomorrow and Saturday share one visible row

Written by GPT-6.1-Sol through the Codex harness in T3 Code.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Nov 6, 2026
@macroscopeapp

macroscopeapp Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 21a99cb

Macroscope's review found this PR approvable — Coinciding snooze options now show their combined labels, and named weekdays remain visible when they fall tomorrow. Existing wake times and selection behavior are preserved, keeping the change limited to presentation.

You can add or adjust custom eligibility rules. Learn more.

@coderabbitai

coderabbitai Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

Explain Change →

No actionable comments were generated in the recent review.

Walkthrough

Snooze presets with the same wake time now appear as one menu row with their distinct labels joined together. A next-day weekday preset uses its weekday name, and the settings preview describes duplicate wake times as combined.

Changes: Snooze preset labels and grouping

Layer / File(s) Summary
Preset labels and wake-time grouping
packages/client-runtime/src/state/threadSettled.ts, packages/client-runtime/src/state/threadSnoozed.test.ts, apps/web/src/components/settings/SnoozePresetsSettings.tsx
Next-day weekday presets use the weekday name. Presets with the same wake minute appear in one row with distinct labels joined by ·; the first preset supplies the row’s other fields. Tests cover label order, row ID, timestamp, and duration/set-time collisions. The settings preview says “Combined with an option above.”

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix · Severity of issue fixed: Low

Possibly related PRs

  • pingdotgg/t3code#26208: Adds configurable snooze presets and removes later presets that share a wake minute.
  • pingdotgg/t3code#26427: Sorts snooze settings by wake time, which determines preset order used for combined labels.
  • pingdotgg/t3code#23884: Implements configurable presets and removes duplicate wake times using the first slot.

Suggested reviewers: t3dotgg

Merge Risk: Minimal · up to 21a99

The change appears ready to merge after normal checks; no actionable issue remains from this review.

Pre-merge checks: Passed 4

Check name Status Explanation
Title check Passed The title clearly describes the main change: keeping coinciding snooze options visible.
Description check Passed The description covers the problem, change, scope, and verification, including screenshots and untested clients. It does not use the template headings or confirm issue triage or maintainer approval.
Linked Issues check Passed [#31879] The resolver keeps weekday names visible and combines distinct labels for presets in the same wake minute. It retains one row and the first preset's ID and wake time. Regression tests cover t…
Out of Scope Changes check Passed [#31879] The resolver change, regression tests, and settings hint support the reported missing-option fix. The changes show no unrelated work.
Full details: Linked Issues check

Explanation

[#31879] The resolver keeps weekday names visible and combines distinct labels for presets in the same wake minute. It retains one row and the first preset's ID and wake time. Regression tests cover the Friday case, reversed order, duplicate labels, and duration collisions. Settings explain that coinciding options are combined.

Finishing Touches

Generate unit tests (beta)

  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Recent review info

Run configuration

Commits

Reviewing files that changed from the base of the PR and between 6dcaf6c and 21a99cb.

Files selected for processing: 3

  • apps/web/src/components/settings/SnoozePresetsSettings.tsx
  • packages/client-runtime/src/state/threadSettled.ts
  • packages/client-runtime/src/state/threadSnoozed.test.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 6 remain after this review.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Snooze menu drops a "Saturday" option every Friday

1 participant