diff options
| author | Danilo M. <danix@danix.xyz> | 2026-08-25 10:13:46 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-08-25 10:13:46 +0200 |
| commit | f4568c0591184823d9f37ab8eb86691ad3057ac4 (patch) | |
| tree | 1bda36513dcd30d78aa22e6bba0b478d76b166d0 /src/messagedetailsdialog.h | |
| parent | 07c36ce617512bb9514e604b614e95a15c390b04 (diff) | |
| download | qtmaildir-f4568c0591184823d9f37ab8eb86691ad3057ac4.tar.gz qtmaildir-f4568c0591184823d9f37ab8eb86691ad3057ac4.zip | |
docs(backlog): record item 162, Delete races a sync's rename
Found by hand while deleting a draft: "Cannot move <file> to <folder>".
Neither Delete nor item 158 is at fault. mbsync uploads a saved draft and
RENAMES it to add its ,U=<uid> infix, and notmuch keeps the pre-U= name
until that sync's notmuch new runs, so moveMessages() calls QFile::rename
on a path that no longer exists.
Verified against the live Maildir rather than read: notmuch named a file
that was not on disk while a sync was running, and the same query was
clean afterwards with the file present under its new name. That is why it
reads as intermittent and why it heals itself.
Truthful and lossless, but the action silently does nothing and the
message blames a folder for a timing problem, which sent the user looking
at a configuration that was correct.
Records both candidate approaches and notes the likelier one: refuse the
move while a sync holds the lock, joining the held-edit machinery items
97 and 106 already built for exactly this shape, rather than re-resolving
the filename and racing the same window. Also notes that this is the ,U=
trap CLAUDE.md records for MaildirName::fresh(), seen from the other
side.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UUQS6n3cmsFrsjCNmwNtf8
Diffstat (limited to 'src/messagedetailsdialog.h')
0 files changed, 0 insertions, 0 deletions
