Tasks & memos: colour axes fix, plus settings/gesture work - #137
Merged
Conversation
Task cards ignored Settings > Colours and always coloured their spine, badge and icon chip by urgency tone, while chore and memo cards followed the two "colour each element by" axes. That is the "tasks doing their own thing" the user saw. TaskUiState now carries colourAxes (fed from settings) and exposes pure, tested spineSwatchFor/iconSwatchFor helpers mirroring the chore side. TaskCard takes spineSwatch/iconSwatch params and resolves spine, icon chip and due badge through them, falling back to the urgency tone when a swatch is null, exactly as ChoreCard does. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Sg2m9t6JspJ1MgpXgwCLTX
Adds ten category/memo icons (pets, baby, fitness, shopping, repairs, study, gifts, work, money, school) with their Lucide glyphs and keyword defaults, and four palette colours (teal, coral, slate, clay) with hand-tuned light/dark tones that clear the 4.5:1 contrast floor on tint, card and ground in both themes (SwatchContrastTest covers them). Both the category picker and the memo colour/icon pickers read the palettes dynamically, so the new choices appear in both places. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Sg2m9t6JspJ1MgpXgwCLTX
A task's reminders are its linked memos, and a task may have several. The list card shows a bell with the live count; the task overview lists each reminder and lets you remove it, alongside the existing Remind action that adds one. Editing a task no longer wipes those reminders: updateTask now reconciles only the memo that mirrors the task's own reminder_at (matched by its exact fire time), leaving every other attached reminder in place. Adding a reminder therefore keeps the task in the Tasks list and the memo in Memos, linked, rather than appearing to move the task wholesale into a memo. TaskUiState carries the linked reminders and exposes a tested activeReminderCountFor helper. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Sg2m9t6JspJ1MgpXgwCLTX
Swipe-right still marks a task done; swipe-left now starts a delete. A dialog confirms it (the destructive action needs a deliberate second tap), then the task and its reminders are removed and an Undo snackbar offers to bring them back. Undo re-creates the task with its due, notes, owner and reminders, and restores its widget pin. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Sg2m9t6JspJ1MgpXgwCLTX
The task card's left chip was a tap-to-complete toggle, so a short press on a task ticked it off rather than opening it, unlike a chore. Tasks now use the same plain icon chip as chores (a check once done), so tapping anywhere on the card opens the task overview. Completion stays on the swipe-right gesture and the overview's Mark done, so a tap never silently completes a task. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Sg2m9t6JspJ1MgpXgwCLTX
mapgie
marked this pull request as ready for review
September 12, 2026 07:05
Integrates main's configurable Settings > Swipe actions (PR #139) with this branch's task work. Resolutions: - Task swipe uses main's per-list, per-direction SwipeAction system. The Delete action routes to this branch's deleteTaskWithUndo, so a deleted task (and its reminders) can be restored from the Undo snackbar; the edit sheet's delete goes through the same path. Delete is still confirmed by the card's dialog first. - Dropped this branch's hardcoded swipe-left-delete gesture and screen-level delete dialog in favour of main's card. - The task card's tap-to-open change stands: TaskCard no longer takes onToggleDone (completion is a swipe or the overview's Mark done). - Kept both settings axes on TaskUiState (colourAxes and swipe) and both feature sets on the view model (colour axes, reminders, delete-with-undo, plus main's archiveTask). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Sg2m9t6JspJ1MgpXgwCLTX
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.
A batch of task and memo improvements. All items landed.
1. Task cards follow the Settings › Colours axes
Task cards ignored Settings › Colours and always coloured by urgency, unlike chore and memo cards.
TaskUiStatenow carriescolourAxesand exposes testedspineSwatchFor/iconSwatchForhelpers;TaskCardresolves spine, icon chip and due badge through them, falling back to the urgency tone, exactly asChoreCarddoes.2. More category / memo icons and colours
Ten new icons (pets, baby, fitness, shopping, repairs, study, gifts, work, money, school) with their Lucide glyphs and keyword defaults, and four new colours (teal, coral, slate, clay) tuned to clear the 4.5:1 contrast floor in both themes. Both the category and memo pickers read the palettes dynamically, so all new choices show up in both.
3. A task can own many reminders
A task's reminders are its linked memos, and a task may have several. The card shows a bell with the live count; the overview lists each reminder with a Remove control, alongside the existing Remind action. Editing a task no longer wipes them:
updateTaskreconciles only the memo mirroring the task's ownreminder_at(matched by exact fire time), leaving other attached reminders in place. So adding a reminder keeps the task in the Tasks list and the memo in Memos, linked, rather than appearing to move the task into a memo.4. A tap opens the task, instead of completing it
The task card's left chip was a tap-to-complete toggle, so a short press ticked the task off rather than opening it (chores use a plain icon). Tasks now use the same plain icon chip (a check once done), so tapping the card opens the overview. Completion stays on swipe-right and the overview's Mark done.
5. Swipe a task left to delete
Swipe-right still marks done; swipe-left starts a delete. A dialog confirms, then an Undo snackbar restores the task and its reminders (re-created with a fresh id; due/notes/owner/reminders intact, widget pin restored).
Notes
Every change has unit tests where the logic is pure (
TaskUiStateTest,CategoryCatalogTest,SwatchContrastTestcovers the new colours) and a changelog fragment; a11y and changelog checks pass locally.🤖 Generated with Claude Code
https://claude.ai/code/session_01Sg2m9t6JspJ1MgpXgwCLTX