docs(todo): ADR 0033, D19 to D25, the developer's review of 3 Nov 2026

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-03 22:03:07 +01:00
commit e54de4002e
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -394,6 +394,53 @@ alternative was put to them, the choice is theirs.
date, or one whose meaning hangs on fields an older one changes, isn't kept so; such
a change still bumps the schema. No server model changes: the payload is sealed.
## Decisions after trying 0.1.0 on a phone (3 Nov 2026, the developer's)
The developer's review of 3 Nov 2026, with Todoist's screens beside Todo's; the project
label at a row's end the developer's answer (right-aligned, as Todoist's, over left after
the date), the rest the developer's asks, carried out as described.
- **D19 Today and its tabs' icons**: Today's tab shows today's day of the month inside a
blank calendar, as Lucide's `calendar-1` holds a 1, drawn again at midnight
(`TodayIcon`); Browse is Lucide's `menu`, Display's button `square-menu`. **Today has at
most two groups**: what is overdue, folding under its heading (its chevron, beside
Reschedule; the fold not kept), and today's, headed by the day alone. **A day's heading**
reads as Todoist's, "Tuesday, 3 Nov" ("Dienstag, 3. Nov.", the pattern a text of each
language, `dayHeadingPattern`); Upcoming's days keep "· Tomorrow" where it helps, Today's
has no "· Today". Upcoming's way back to today shows whenever another day than today is
picked, not only off this week.
- **D20 Rows in rounded boxes, a list's rows a group** (as Todoist's): each row its own
surface (`TaskTile`'s box, `TaskRowPosition`, `taskGroup`), rounded at the group's ends
and slightly at the joins, so a chosen row's colour stays inside it as the list scrolls
under a pinned heading (it showed under Upcoming's week strip, as the row's tile was
painted on the screen's surface below the list). Its project and section end the line
of its date at the row's right edge.
- **D21 Lists pulled down sync now**, as Learn's: Today, Upcoming's agenda, the Inbox and
every project (`TaskRefresh`, halkyon_ui's `AppRefreshIndicator` over halkyon_app's
`syncAndWait`), an empty list too (`PullRoom`). A board's columns and the 3-day grid
don't, as they scroll sideways or both ways. **A project's screens wash in its own
colour**, as a studyset's in Learn; one without keeps Todo's strawberry.
- **D22 Display as Todoist's**: each layout a phone's outline with its picture, its name
below on one line, a radio button marking the one in use; the rest in rounded groups
under plain headings. "Add section" in place of "New section".
- **D23 Quick add a small bar docked above the keyboard** (amends D8, D15): the title,
then one row of boxed buttons (+ for the description and deadline, the date, the
priority, the labels, the project), each its icon alone until something is set, and a
send button, the list in view behind a lighter barrier. Its buttons show from the
start (D15 had its chips come with the first letter), as Todoist's bar has them. Where
sheets are dialogs, the same bar in a dialog.
- **D24 A task's sheet partway up, its parts in rounded boxes** (amends D13): on a phone
it opens as high as its content, at most 65 % of the window, and is dragged up to the
whole window or down to close (`DraggableScrollableSheet`); the title, description,
date and reminders each a box, the priority, labels, deadline and project a row of
chips (named while unset), the sub-tasks a box ending in Add sub-task. No principle of
the project's argues against Todoist's layout: grouped rounded boxes are what the
review asks for across the apps. Todo keeps no comments, so there is no comment field.
- **D25 Explanations one tap away**: what a setting does stands behind halkyon_ui's
`HelpButton` beside its name (`TitleWithHelp`), not always below it, in Todo and
Meditate; what is the person's own (a value) stays in view, as do an empty list's
message and quick add's hint while words are highlighted.
## Steps
1. **The frame**: go_router and `NavigationFrame` with the four tabs (empty screens that