feat(todo): each project's Display: completed tasks, grouping, sorting and filters, synced (ADR 0033, D17)

- A Display button beside a project's menu (the Inbox's too), a dot
  on it while the project shows otherwise than at first, opens its
  sheet: completed tasks, grouping (date, deadline, added date,
  priority, label), sorting (name, date, deadline, added date,
  priority), filters by date, deadline, priority and label, and
  Reset all.
- The choices live in the project's sealed payload (ProjectView,
  written only once set), so every device shows the project alike.
- Grouped, the groups stand in the sections' place under pinned
  headings; rows are dragged only while sorted by hand by sections.
- Show done tasks moves from the menu into Display.

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 18:41:12 +01:00
commit 7d1de304c8
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -242,6 +242,27 @@ alternative was put to them, the choice is theirs.
their time, duration and recurrence kept, *Moved to …* offering to undo it; their
order within a day stays their times' and priorities', and Today's rows aren't
dragged.
- **D17 Each project's Display, synced** (the developer's, 1 Nov, as Todoist's; D8's
later step): a project's screen, the Inbox's too, has a Display button beside its ⋮, a
dot on it while anything differs from how a project shows at first. Its sheet sets
completed tasks (moved out of the ⋮), grouping (none, which keeps the sections; date,
deadline, added date, priority, label), sorting (manual, name, date, deadline, added
date, priority; a tie, or a task without what is sorted by, last and by hand), and
filters by date and deadline (all, today, this week from the language's first
weekday, next 7 days, this month, next 30 days, none) and by priority and label (any
ticked). Each change is written at once; Reset all puts the project back. Grouped,
the groups stand in the sections' place under headings that stay atop the list
(overdue first, then each day, none last; P1 first; a task under each of its labels);
rows are dragged (D16) only while sorted by hand and grouped by sections. The choices
are kept **in the project's sealed row**, so every device of the person's shows the
project alike (`ProjectView`, the payload's `view`, written only once set; values a
version doesn't know read as at first). The schema stays 1: an older version reads
such a project, and renaming it there drops its Display, which beats a newer schema
it couldn't read at all. Today's and Upcoming's Display come with Upcoming's 3-day
grid, in a sealed person-settings row (`todo_settings`, one migration), which also
holds D4's settings. **To come, in this order**: Board (a column a section, paged on
phones, side by side on wide windows, rows dragged between columns), Calendar for
projects (the week strip and agenda), Upcoming's 3-day grid.
## Steps