diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-01 10:31:52 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-01 10:31:52 +0200 |
| commit | 63c7a1fcaadb1e26c1597d5b86ce85066890ece3 (patch) | |
| tree | 80fd9e156af879818521015f0d9ad8384886c3da /AGENTS.md | |
| parent | b12aada52d682c45aa1e66e13dc448dc894aee79 (diff) | |
| download | qtmaildir-63c7a1fcaadb1e26c1597d5b86ce85066890ece3.tar.gz qtmaildir-63c7a1fcaadb1e26c1597d5b86ce85066890ece3.zip | |
fix: open a conversation's first message from the overview
Clicking the first message in a conversation overview's unread list did
nothing visible. applyPendingDashboardSelection() matched the
conversation row on the root's message id, so it reselected the row that
was already current and the overview stayed on screen. Since item 177
setThreadMessages keeps a conversation's first message as child 0, so
it has a row of its own. Only a thread of one now answers for its
message on its own row, the same guard 236ac86 added to the recovery.
AGENTS.md still said a thread's first message is never among its
children, which has been true only for a thread of one since item 177.
It is corrected to say so.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'AGENTS.md')
| -rw-r--r-- | AGENTS.md | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -625,9 +625,13 @@ symptom named only `markCurrentThreadRead` (which was in fact protected by an unrelated guard and could not fire). One bad accessor produced four defects with one symptom between them. -**A thread's first message is NOT among its children, and two lookups forgot -it.** `setThreadMessages` drops depth 0 because the root row stands for that -message, so `children` never holds it. `applyMessageTagChange` and +**A thread of one's message is NOT among its children, and two lookups forgot +it.** Since item 177 `setThreadMessages` keeps a CONVERSATION's first message +as child 0, so it has a row of its own, and a lookup or selection that names it +must land there rather than on the conversation row (236ac86 and the dashboard +selection both matched the root's id and opened the dashboard instead). A +single-message thread still has no child, since its row IS the message. +Before item 177 every thread dropped depth 0. `applyMessageTagChange` and `messageById` both search the root first now (item 109); before that, a message-scoped write to a root card repainted nothing, and the strip refresh set the pane's chips to the empty node the lookup returned, destroying a strip that |
