aboutsummaryrefslogtreecommitdiffstats
path: root/docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-08-14 20:06:08 +0200
committerDanilo M. <danix@danix.xyz>2026-08-14 20:06:08 +0200
commit4a4849421ddac044212cd0e17f9aee8ff2606292 (patch)
treebedfb35f370b637eedcb3cd4d24be8ac75b257b5 /docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md
parentbde7409ef817089298718376e46a57b2d303cf02 (diff)
downloadqtmaildir-4a4849421ddac044212cd0e17f9aee8ff2606292.tar.gz
qtmaildir-4a4849421ddac044212cd0e17f9aee8ff2606292.zip
Revert the message-scoped auto mark-read
Reverts bde7409 and 66f1159. The user hit the worst possible symptom: clicking one message marked a DIFFERENT, unrelated message read. The cause is in markCurrentThreadRead, which reads m_model->threadAt(current.row()). CLAUDE.md records this exact trap: a tree numbers rows PER PARENT, so a reply's row() indexes its siblings and threadAt() on it answers about an unrelated thread near the top of the list. The guards then compared the right ids against the wrong thread and let a write through for whatever message the timer's state named. That fault predates these commits, but they made it reachable and harmful: while the write was thread-scoped the mismatch was mostly masked, and scoping it to a single message turned it into "a random message is now read". Reverting rather than fixing forward. Marking the wrong mail read syncs out to the server and cannot be undone from here, so the safe state is the previous behaviour, which is too broad but predictable. The item 66 work in 4a4f82f stands: a thread root still renders one message. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md')
0 files changed, 0 insertions, 0 deletions