Dashboard snooze controls: e/E hotkeys, dim presentation, snoozed·Xh-left label - #360
Merged
Merged
Conversation
…left label Port the dashboard half of the snooze feature. `e` toggles a fixed 12h operator snooze on the highlighted task; `E` records the reserved indefinite deadline. An active snooze mutes the whole row (dim) and replaces the turn cell with `snoozed · Nh left` (or bare `snoozed` for the indefinite value); at/after a finite deadline the row resumes its ordinary presentation without mutating the stored fact (expiry is display-only). All snooze reads/writes go through an injectable display-clock seam, and a one-shot Textual timer repaints when a finite snooze's label is due to change — the change feed emits no event for a clock-only tick. No attention/piercing behavior: a snooze always mutes until it expires. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ports the dashboard half of the snooze feature (chunk 2/3), building on the backend fact added in #359 (
Task.snoozed_until+TaskServiceClient.set_snooze).What it adds
etoggles a fixed 12-hour operator snooze on the highlighted task; pressingeagain while a snooze is active clears it. The 12h window is a hard constant — no config surface.Erecords the reserved indefinite deadline (9999-12-31T23:59:59+00:00) — mute until explicitly un-snoozed.snoozed · Nh left(Nm/<1mnear the deadline) or baresnoozedfor the indefinite value.snoozed_until— expiry is display-only.now=on the dashboard App). Because a clock-only tick emits no change-feed event, a one-shot Textual timer repaints exactly when a finite snooze's label is next due to change.Design note
No
attention/piercing behavior — a snooze always mutes until it expires. The turn-column precedence is simply snoozed (dim) > normal. Snoozed-task sort ordering is deliberately out of scope (chunk 3).