Hi Jay.
[...]
> I can reproduce this with a much smaller mu4e config and emacs
> -q (setting my maildir, folders, and (setq
> mu4e-change-filenames-when-moving t)), so I think this might be
> something wrong with my mbsync config.
> [...] I'm still pretty confused how the mbsyncrc file works, so
> any help would be appreciated.
I use mbsync too (much lighter in resources and faster) and it's
config seems pretty straightforward...
Here is my commented config, in case it's useful.
--8<---------------cut here---------------start------------->8---
IMAPAccount your-account-name
Host
imap.gmail.com
User
y...@your-domain.org
Pass your-password
SSLType IMAPS
# at least in linux, here are the certificates.
CertificateFile /etc/ssl/certs/ca-certificates.crt
# Defining remote access/server
IMAPStore your-account-name-remote
Account your-account-name
# Defining local filesystem "repo"/maildir
# at least in linux, the stadard path is ~/Maildir
# under that directory is 1 directory per account
MaildirStore your-account-name-local
Path ~/Maildir/your-account-name/
Inbox ~/Maildir/your-account-name/inbox
# Now we define channels (~folders exposed by the IMAP server).
# Gmail does it with labels, exposing each one as folders
# (which ones are exposed is managed in Settings > Labels).
# Here we sync only inbox, trash, drafts, starred and all
# so as to minimize duplication and just use mu4e saved
# searches in the "All" folder for easy access.
# We also rename them to make them shorter and easier in
# case typing is needed ("[Gmail]/Papelera" > trash).
# Defining each channel also allows to check them separately,
# for example, inbox only every 5 minutes, all of them every 20.
Channel your-account-name-inbox
Master :your-account-name-remote:
Slave :your-account-name-local:
Patterns "INBOX"
Create Both
Expunge Both
SyncState *
Channel your-account-name-trash
Master :your-account-name-remote:"[Gmail]/Papelera"
Slave :your-account-name-local:trash
Create Both
Expunge Both
SyncState *
Channel your-account-name-drafts
Master :your-account-name-remote:"[Gmail]/Borradores"
Slave :your-account-name-local:drafts
Create Both
Expunge Both
SyncState *
Channel your-account-name-starred
Master :your-account-name-remote:"[Gmail]/Destacados"
Slave :your-account-name-local:starred
Create Both
Expunge Both
SyncState *
Channel your-account-name-todos
Master :your-account-name-remote:"[Gmail]/Todos"
Slave :your-account-name-local:todos
Create Both
Expunge Both
SyncState *
# And now we group the channels we'd like to check together
# with this account's name.
Group your-account-name
Channel your-account-name-inbox
Channel your-account-name-trash
Channel your-account-name-drafts
Channel your-account-name-starred
Channel your-account-name-todos
--8<---------------cut here---------------end--------------->8---
HTH. :)