Skip to content

fix(server): re-snoozing to the same wake time restamps snoozedAt - #14509

Closed
Lucenx9 wants to merge 1 commit into
pingdotgg:mainfrom
Lucenx9:fix/snooze-same-wake-time-restamp
Closed

Lucenx9 wants to merge 1 commit into
pingdotgg:mainfrom
Lucenx9:fix/snooze-same-wake-time-restamp

Conversation

@Lucenx9

@Lucenx9 Lucenx9 commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Fixes #14298

What changed

thread.snooze in the decider no longer keeps the original snoozedAt when re-snoozing to the same wake time. Every explicit snooze stamps snoozedAt and updatedAt fresh. The optimistic twin in threadCommands.ts matches. Net deletion plus test updates.

Why

A re-snooze to the same wake time kept the original snoozedAt. The raised-hand check compares session and turn timestamps against it, so a failure newer than the first snooze kept the thread in the inbox forever. Repeating the same preset is the normal case since presets resolve to fixed clock times. An explicit snooze means the user saw the thread, so it must reset the baseline. True retries still dedupe by commandId receipts.

Verification

  • Red without fix, green with it, both suites:
    • vp test run decider.snoozed.test.ts gives 10 passed
    • vp test run threadCommands.test.ts -t "snooz" gives 6 passed, 13 skipped
  • vp lint on all four touched files gives clean
  • tsc --noEmit in apps/server and packages/client-runtime gives exit 0
  • fallow audit --base main --brief gives exit 0, no findings on changed lines

No screenshots. No UI change, only the snooze timestamp baseline behind inbox classification.

Flow

flowchart TD
  A[thread wakes as Failed] --> B[user re-snoozes same preset]
  B --> C{snoozedAt?}
  C -- before: original kept --> D[raised-hand check still true, thread stuck in inbox]
  C -- after: stamped now --> E[baseline resets, thread leaves inbox until wake time]
Loading

Built with muse-spark-1.3 via pi coding agent.

Copilot AI balanced review requested due to automatic review settings October 1, 2026 01:47
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Oct 1, 2026
@macroscopeapp

macroscopeapp Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at b95c229

Macroscope's review found this PR approvable — The PR narrowly fixes snooze timestamp baselines on both the server and optimistic client state, with targeted regression coverage. Its runtime impact is limited to correctly resetting snooze timestamps when a user explicitly re-snoozes a thread.

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

@Lucenx9

Lucenx9 commented Oct 1, 2026

Copy link
Copy Markdown
Contributor Author

Closing as a duplicate of #14299, which fixes #14298 with the same approach and was already open. My title search missed it because it fell outside the recent PR window. Sorry for the noise.

@Lucenx9 Lucenx9 closed this Oct 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: A thread that woke from snooze cannot be snoozed again to the same wake time

2 participants