aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-08-18 12:12:49 +0200
committerDanilo M. <danix@danix.xyz>2026-08-18 12:12:49 +0200
commitec8c2d7492b479846270f702541a26be5643a376 (patch)
treef743e215e177a9c5dfb49394a6d9bdcaa1dd498b /README.md
parenta089820aba3bc51884ad880b9e3cf689eda7361d (diff)
downloadqtmaildir-ec8c2d7492b479846270f702541a26be5643a376.tar.gz
qtmaildir-ec8c2d7492b479846270f702541a26be5643a376.zip
feat(worker): resolve whole threads to their messages, ids and paths
Delete thread MOVES every message now, and a move needs message ids and file paths that the UI does not hold: a thread the user never expanded has no nodes in the model for its replies, so those live only in the database. resolveThreadMessages() answers with both, in one combined query, for the same reason applyTagsToThreads() resolves threads here rather than in the UI: a query per thread reopens the same Xapian cursor once per selected row. Paths come back RELATIVE to the database root, matching ThreadSummary::firstMessagePath, because the UI knows accounts only by their maildir, itself a database-relative prefix. Without them the caller would know which messages to move and not where any of them belongs. Tags come back too, because Restore reads a message's `deleted-from:` tag to decide where to send it and an unexpanded thread's messages have no node to read tags from. They are joined by a TAB, not a space. A notmuch tag may absolutely contain a space: the folder "Inbox/SlackBuilds users" produces `deleted-from:Inbox/SlackBuilds users`, and splitting that on spaces truncated the folder to "Inbox/SlackBuilds". Restore then moved the messages into a folder of that name, CREATING it, so real messages ended up in a directory mbsync does not sync and read as missing. Under `Create Both` that folder can propagate to the mail server. A tab cannot appear in a tag, since notmuch's own dump format is line-based and whitespace-delimited. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'README.md')
0 files changed, 0 insertions, 0 deletions