Skip to content

Tasks & memos: colour axes fix, plus settings/gesture work - #137

Merged
mapgie merged 6 commits into
mainfrom
claude/task-memo-settings-3g2cnb
Sep 12, 2026
Merged

Tasks & memos: colour axes fix, plus settings/gesture work#137
mapgie merged 6 commits into
mainfrom
claude/task-memo-settings-3g2cnb

Conversation

@mapgie

@mapgie mapgie commented Sep 12, 2026

Copy link
Copy Markdown
Owner

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. TaskUiState now carries colourAxes and exposes tested spineSwatchFor / iconSwatchFor helpers; TaskCard resolves spine, icon chip and due badge through them, falling back to the urgency tone, exactly as ChoreCard does.

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: updateTask reconciles only the memo mirroring the task's own reminder_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

  • Undo of a swipe-delete re-creates the task with a new id (the row is a real delete); content and reminders are restored.
  • The Edit-task sheet's single inline reminder still works and is one of the task's reminders; additional ones are added from the overview's Remind action.

Every change has unit tests where the logic is pure (TaskUiStateTest, CategoryCatalogTest, SwatchContrastTest covers the new colours) and a changelog fragment; a11y and changelog checks pass locally.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Sg2m9t6JspJ1MgpXgwCLTX

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
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
@mapgie
mapgie merged commit 260c5e0 into main Sep 12, 2026
6 checks passed
@mapgie
mapgie deleted the claude/task-memo-settings-3g2cnb branch September 12, 2026 07:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants