Mail, Notes and Search: long or unusual data breaks the layout (break-ui findings) #1612

Closed
opened 2026-10-12 12:49:42 +00:00 by kayg · 2 comments
Owner

Mail, Notes and Search break with long or unusual data (break-ui review #1598; shots on branch worktree-agent-a0afcda97025f5170 under artifacts/ui-breakui/):

Mail

  1. A long sender runs into the time ("northwin…41 min ago") in the list at 1440 and 390 (mail@1440-light, mail@390-light). Keep a gap; the sender truncates first.
  2. Mail reader at 390 squeezes the sender to "barthol…" (shots/probe/mail-long-address-390-light.png).
  3. A wide HTML table in a message breaks words mid-word (shots/probe/mail-wide-table-1440-light.png). Let wide content scroll inside the message instead.
  4. A message dated in the future shows "Just now". Show its date.
  5. The empty Mail state says "IMAP". Use user-friendly words.

Notes
6. Notes list at 320 and 390: Share and ⋯ leave about 60 px for the title (notes@320-light, notes@390-light). Move secondary actions into ⋯ on phones.
7. Notes sort differently in the sidebar and in the main list (notes@1440-light). Use one sort.
8. Truncated Note titles have no warm tooltip with the full title.
9. The Note H1 hyphenates mid-word ("quar-terly"). Titles do not hyphenate.

Search and command palette
10. The Money month file shows as a Note "2026-10" with raw Markdown in the snippet, and three Journal rows look identical after truncation (shots/probe/palette-query-1440-light.png, palette-query-390-dark.png). Show the right kind and a clean snippet; make rows distinguishable (date or path line). If the wrong kind comes from the server, report it on this issue instead of patching the UI.

Mail, Notes and Search break with long or unusual data (break-ui review #1598; shots on branch worktree-agent-a0afcda97025f5170 under artifacts/ui-breakui/): Mail 1. A long sender runs into the time ("northwin…41 min ago") in the list at 1440 and 390 (mail@1440-light, mail@390-light). Keep a gap; the sender truncates first. 2. Mail reader at 390 squeezes the sender to "barthol…" (shots/probe/mail-long-address-390-light.png). 3. A wide HTML table in a message breaks words mid-word (shots/probe/mail-wide-table-1440-light.png). Let wide content scroll inside the message instead. 4. A message dated in the future shows "Just now". Show its date. 5. The empty Mail state says "IMAP". Use user-friendly words. Notes 6. Notes list at 320 and 390: Share and ⋯ leave about 60 px for the title (notes@320-light, notes@390-light). Move secondary actions into ⋯ on phones. 7. Notes sort differently in the sidebar and in the main list (notes@1440-light). Use one sort. 8. Truncated Note titles have no warm tooltip with the full title. 9. The Note H1 hyphenates mid-word ("quar-terly"). Titles do not hyphenate. Search and command palette 10. The Money month file shows as a Note "2026-10" with raw Markdown in the snippet, and three Journal rows look identical after truncation (shots/probe/palette-query-1440-light.png, palette-query-390-dark.png). Show the right kind and a clean snippet; make rows distinguishable (date or path line). If the wrong kind comes from the server, report it on this issue instead of patching the UI.
Author
Owner

Fixed on branch worktree-agent-a1f3a0a504124ae00 (head d10fd2d1b), not pushed. Items 1-9 are done in the UI. Item 10 is partly done; the wrong kind comes from the server.

Item 10, server findings (no Rust changed):

  1. The Money month file Money/<budget>/2026-10.md is returned by GET /api/v1/search with "kind":"note", title "2026-10" and href /notes?path=Money/.... It is a Money ledger file, not a Note, so it should have the Money kind (the UI already has a transaction kind) and open Money, not Notes.
  2. The three Journal hits for one day have the same title, the same modified (day start) and snippet: null. The entry time is not in the hit, so the UI can only show the date, which is identical for entries from one day. Adding the entry time (or a snippet with the time) to log hits would make them distinguishable.
  3. Notes are paged by ORDER BY title (code point order). I made the sidebar tree use the same order. A natural order ("Digest 2" before "Digest 10", case-insensitive) needs the server to sort that way.

UI changes: gap and truncation order in list rows, reader header wraps actions on narrow panes, data tables keep whole words and scroll sideways, future-dated mail shows its date, empty state says "email account", Share moves out of the phone Notes row (it stays in the ⋯ menu), truncated Note titles get the warm tooltip, Note H1 does not hyphenate, Search snippets show link text instead of raw Markdown, date or path line keeps its width in Search rows.

Fixed on branch worktree-agent-a1f3a0a504124ae00 (head d10fd2d1b), not pushed. Items 1-9 are done in the UI. Item 10 is partly done; the wrong kind comes from the server. Item 10, server findings (no Rust changed): 1. The Money month file `Money/<budget>/2026-10.md` is returned by `GET /api/v1/search` with `"kind":"note"`, title "2026-10" and `href` `/notes?path=Money/...`. It is a Money ledger file, not a Note, so it should have the Money kind (the UI already has a `transaction` kind) and open Money, not Notes. 2. The three Journal hits for one day have the same `title`, the same `modified` (day start) and `snippet: null`. The entry time is not in the hit, so the UI can only show the date, which is identical for entries from one day. Adding the entry time (or a snippet with the time) to log hits would make them distinguishable. 3. Notes are paged by `ORDER BY title` (code point order). I made the sidebar tree use the same order. A natural order ("Digest 2" before "Digest 10", case-insensitive) needs the server to sort that way. UI changes: gap and truncation order in list rows, reader header wraps actions on narrow panes, data tables keep whole words and scroll sideways, future-dated mail shows its date, empty state says "email account", Share moves out of the phone Notes row (it stays in the ⋯ menu), truncated Note titles get the warm tooltip, Note H1 does not hyphenate, Search snippets show link text instead of raw Markdown, date or path line keeps its width in Search rows.
Author
Owner

Deployed to calternal.cloud as build 016bf3d57 (fast lane). Server follow-ups: #1614 (natural sort), #1615 (search kind and Journal hits).

Deployed to calternal.cloud as build 016bf3d57 (fast lane). Server follow-ups: #1614 (natural sort), #1615 (search kind and Journal hits).
kayg closed this issue 2026-10-12 14:20:55 +00:00
Commenting is not possible because the repository is archived.
No labels
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal-v0#1612
No description provided.