aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-08-25 10:13:46 +0200
committerDanilo M. <danix@danix.xyz>2026-08-25 10:13:46 +0200
commitf4568c0591184823d9f37ab8eb86691ad3057ac4 (patch)
tree1bda36513dcd30d78aa22e6bba0b478d76b166d0 /tests
parent07c36ce617512bb9514e604b614e95a15c390b04 (diff)
downloadqtmaildir-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 'tests')
0 files changed, 0 insertions, 0 deletions