fix(threads): keep snoozed threads hidden when work finishes - #7179
maslinedwin wants to merge 1 commit into
Conversation
Snooze is time-based. Completing a turn no longer raises a thread's hand, so a working thread stays in the snoozed shelf until the chosen wake time, an explicit unsnooze, or a real blocking request.
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
ApprovabilityVerdict: Needs human review This PR changes runtime behavior for when snoozed threads resurface to users, removing completion as a wake trigger. As a product behavior change (not a straightforward bug fix) by a new contributor, this warrants human review to verify the intended product behavior. You can customize Macroscope's approvability policy. Learn more. |
|
Thanks for the PR. We're not taking changes to the orchestration and provider layers right now: that part of the server is being rewritten for V2, and merging into the current code would either conflict with or be thrown away by that work. Closing for now. If this is still an issue once V2 lands, please reopen (or open a fresh PR against the new code) and we'll take a proper look. |
Fixes #6368. Turn completion no longer raises a snoozed thread's hand. Approvals, user-input, fresh errors, and the scheduled wake time still surface it.
What Changed
threadRaisedHandWhileSnoozedno longer treats a turn that completed aftersnoozedAtas a raised hand.threadWokeAtno longer reports that completion as an early wake.Why
Snooze is a time-based attention overlay. Work finishing updates execution state only. Completing a turn was unsnoozing the thread in the sidebar before the chosen wake time.
Checklist
Note
Low Risk
Behavior change is localized to client-runtime snooze classification and sidebar wake UX, with tests updated; no auth, persistence, or API contract changes.
Overview
Snooze no longer treats turn completion as “raise your hand.” Threads that finish a run while snoozed stay classified as snoozed until the scheduled wake time or a user-blocking signal (pending approval, user input, or a fresh session error).
In
threadSettled.ts,threadRaisedHandWhileSnoozeddrops the branch that comparedlatestTurn.completedAttosnoozedAt, andthreadWokeAtno longer reports that completion as an early wake (including the special-case that used completion time after a hand-raise).effectiveSnoozedtherefore keeps snoozed threads hidden when work merely completes.Sidebar and server comments are aligned: the Woke pill clears on visit only for blocking early wakes, not for completion; the decider documents that completion is not a raised hand. Tests in
threadSnoozed.test.tsflip expectations and add coverage that approvals still unsnooze after completion.Reviewed by Cursor Bugbot for commit 90f8477. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Keep snoozed threads hidden when work completes without requiring input
threadRaisedHandWhileSnoozedinthreadSettled.tsno longer treats a post-snooze turn completion as a raised hand; only pending approvals, pending user input, or a fresh session error qualify.threadWokeAtno longer returns a turn'scompletedAtas an early wake timestamp; raised-hand wakes now reportsession.updatedAtorsnoozedAt, and timer-elapsed wakes reportsnoozedUntil.Macroscope summarized 90f8477.