feat(todo): recurring tasks, set through a picker (ADR 0033, D7)

A task's date may recur: every n days, weeks (on which weekdays),
months (on its day, or its nth or last weekday), years, from its date
or from when it is done, until a day or for n times. Done, it moves on
to the next day after both its date and today, its deadline as far, its
time kept, its done sub-tasks open again and when it was done kept in
its payload; undo writes all of it back. The date sheet offers the rules
that fit the task's day and a rule of the person's own; rows show a
recurring date with its own icon, the task sheet the rule in words.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-11-01 12:15:51 +01:00
commit aa013f5a00
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -1,8 +1,8 @@
# ADR 0033: Halkyon Todo, what it does and how it looks
- **Status:** decided 1 Nov 2026, by the developer (D1–D10 below, the agent's
recommendations taken as a whole). Built the same day: steps 1 to 3 and Today and
Upcoming as lists (step 4 without recurrence, reminders and the week strip).
recommendations taken as a whole). Built the same day: steps 1 to 3, Today and
Upcoming as lists, and recurrence (step 4 without reminders and the week strip).
- **Numbering:** 0025–0029 are held (ADR 0030's note), 0032 is Jellyfin's; this is the
next free number.
- **Builds on:** ADR 0030, D7, D12, D14, D15 and D60 (Train's sealed rows, its shell, its
@ -102,6 +102,17 @@ the rail, a wash of strawberry, settings grouped as theirs. What the screenshots
or the nth weekday), years, from the date or from completion, until a day or for n
times. Dates and tokens typed into quick add ("tomorrow 6am", "every Monday", `#project`,
`p1`), in English and German, are a later step, built on the same rule.
As built (1 Nov): the rule is part of the task's date (`Repeat` in `TaskDate`, its
payload's `date.repeat`), so a task without a date doesn't recur and clearing the date
ends it; schema 1 holds it, as no task was written before. Done, a task counted from its
date moves to the rule's first day after both its date and today (an overdue one isn't
moved onto a day already past), counted from completion it moves the rule's units on
from today, on no particular weekday; its deadline moves as far, its time is kept, its
done sub-tasks open again, and when it was done is added to its `completions`. Undo
writes back every task that changed. The picker offers the rules that fit its day
(every day, every weekday, its weekday, its day or nth weekday of the month, its day of
the year) and a rule of the person's own; weeks start on Monday for every n weeks, until
the week's first day is a setting (D4).
- **D8 The first version** (recommended): Inbox and projects with sections, shown as a
list; sub-tasks; Today (Overdue first, rescheduling them together, then today's); Upcoming
as an agenda with the week strip opening into the month; the task sheet (rows for the