Upstream issues and bugs: status in this fork
Tracks the open issues of LukeSmithxyz/mutt-wizard (as of 2026-07-26) and the bugs B1 to B19 found while triaging them. Bug IDs and the full triage are in Kris's project notes (~/src/projects/luke-smith/mutt-wizard-triage.md). Every fix below has tests in tests/; run tests/run.sh.
Bug-category issues (roadmap stage 1 exit)
| Issue | Problem | Status | Commit |
|---|---|---|---|
| #1037 | No notification when mbsync reports a hierarchy delimiter error | Fixed: delimiter parsed (B7), and new mail is notified even when a sync step fails (B11) | 69a67d9, 1811676 |
| #1034 | isyncrc not created where isync 1.5 looks | Fixed: $XDG_CONFIG_HOME/isyncrc on isync 1.5+ when ~/.mbsyncrc is absent; mailsync follows the same rule |
531754a, merge 792899e |
| #1025 | mailsync evals lines from shell rc files | Fixed: one env file, parsed without eval | ba9cc66 |
| #1008 | Newbie problems: smtp_authenticators, no scheduler |
Fixed: line removed (B8); mw -t installs a systemd user timer, launchd agent or cron line |
c577740, ba9cc66 |
| #1006 | A failed add cannot be retried | Fixed: -x always replaces the secret; a failed or interrupted log-on rolls it back |
576ee9b, 0c24716 |
| #979 | Gmail fails even with an app password | Fixed: same root cause as #1006 (stale secret), and curl's real error is shown | 576ee9b |
| #949 | Forwarding text attachments inlines or loses them | Fixed: mime_forward = ask-yes |
c577740 |
| #896 | Notification D-Bus timeout | Fixed: existing session bus kept, Wayland supported (B12) | 1811676 |
| #889 | Folders with subfolders not listed | Fixed: only \Noselect folders are dropped (B6) |
69a67d9 |
| #994 | INBOX.Archive contains the server's hierarchy delimiter |
Fixed: delimiter read from LIST and mapped to / (B7) |
69a67d9 |
| #987 | Outlook sending stuck | Fixed: CSV ports honoured and TLS mode explicit (B1); smtp_authenticators removed (B8) |
0a3f98b, c577740 |
| #944 | POP times out | Fixed: POP defaults to 995 with implicit TLS (B2, B3) | 0a3f98b |
Other issues touched
| Issue | Status | Commit |
|---|---|---|
| #1038 | Gmail text corrected: app passwords work with passkeys; OAuth2 not supported yet (roadmap stage 7) | 576ee9b |
| #1001 | "INBOX*" added to Patterns; untested against a live isync 1.5.1 |
69a67d9 |
| #954, #995 | OAuth2: mw -a addr -A xoauth2 runs a token helper (neomutt's mutt_oauth2.py or MW_OAUTH2_CMD) and writes XOAUTH2 configs for isync, msmtp, curl, neomutt and goimapnotify; see docs/oauth2.md. Untested against live Google or Microsoft |
round 4 (oauth) |
| #955 (PR) | Salvaged: same token-helper idea; mbsync and msmtp configs rendered through the account helpers instead of new template variables; works for -o; the helper path and gpg key are not hardcoded; a pre-created token file is not required |
round 4 (oauth) |
| #1005, #965 | Real curl error and a pass round-trip check before the log-on test | 576ee9b |
| #988, #963 | -A <mech> pins the SASL mechanism for curl and mbsync (AUTH=NTLM for Exchange) |
576ee9b |
| #982, #743 | Any case of Inbox normalised to INBOX |
69a67d9 |
| #977 | MAILSYNC_MUTE takes a list of accounts |
1811676 |
| #916, #1010 | Add warns about a shadowing neomutt rc and a missing $EDITOR |
531754a |
| #888 | Folder names with spaces parse and stay quoted | 69a67d9 |
| #1019 (PR) | Fish completions landed with edits | 8b2acf2, 5e6b544 |
| #1015, #927, #966 | Already fixed in master before the fork | none |
| #1024 (PR) | Rejected: -p is POP, -P is the pass prefix, as the README says |
none |
Bugs from the triage
| Bug | Status | Commit |
|---|---|---|
| B1 ports overridden before the CSV lookup | Fixed | 0a3f98b |
| B2 POP on 993 | Fixed | 0a3f98b |
| B3 mpop STARTTLS on 995 | Fixed | 0a3f98b |
| B4 stale secret, no rollback | Fixed | 576ee9b, 0c24716 |
B5 curl hides errors, password on argv, unpinned auth, --proxy "" |
Fixed | 576ee9b |
B6 \HasChildren folders dropped |
Fixed | 69a67d9 |
| B7 delimiter ignored | Fixed | 69a67d9 |
B8 smtp_authenticators |
Fixed | c577740 |
| B9 gpg-wks macros reference shell variables | Fixed (rewritten, not exercised against a WKS server) | c577740 |
| B10 rc-file eval | Fixed | ba9cc66 |
| B11 partial sync failure skips notifications | Fixed | 1811676 |
| B12 D-Bus and display guessing | Fixed | 1811676 |
B13 maildir ignores XDG_DATA_HOME |
Fixed | 1811676 |
| B14 deleting an account corrupts the next one | Fixed | d067720 |
| B15 isync 1.4 gets Master/Slave | Fixed | 531754a |
| B16 imapnotify: TLS checks off, appended twice, never deleted | Fixed | 0a3f98b, d067720 |
B17 pgrep mbsync matches anyone's process |
Fixed: per-user lock | 1811676 |
| B18 cron guard signs with the default gpg key | Fixed: uses the store's key, skipped without pass | ba9cc66 |
B19 leading space in domains.csv |
Fixed | 0a3f98b |
Issues not listed here are features or support questions; they belong to later roadmap stages (discovery, secret backends, Proton Bridge, mw doctor, OAuth2).
Later roadmap stages (2026-10-08, rounds 2 and 3)
| Stage | Issues and PRs | What landed | Commits |
|---|---|---|---|
| 2 salvage | #455, #731 (closed PRs) | MAILSYNC_FOLDERS notifies about new mail outside INBOX |
9444f4f |
| 2 salvage | #972, #1023 (open PRs, reworked) | MAILSYNC_MUTE_FROM mutes senders; MAILSYNC_ACTION adds a non-blocking Open action |
9444f4f |
| 2 salvage | #942 (closed PR, rewritten) | Certificate pinning library lib/mutt-wizard-pin and docs/cert-pinning.md |
94f8ad1 |
| 3 discovery | #309 (Luke's "remove domains list"), #305, #312 | Discovery chain: provider files with local overrides, domain autoconfig, SRV, MX inference for custom domains, opt-in ISPDB, certificate-verified probes; domains.csv is now the last provider-file fallback; docs/discovery.md |
0d03057, e8da002, 02a4a37, ab51449, 51a4d6f, a2926d5 |
| 3 exit | tests/t-stage3.sh: Gmail, Fastmail, Outlook, Proton and a self-hosted domain set up with no lookups beyond the user's own domain |
1e975bb | |
| 4 secrets | #992, #925 | lib/mutt-wizard-secret dispatcher (pass, secret-service, gpg, age, cmd); not yet wired into the templates |
98b0221 |
| 5 Proton | #262, #374, #667, #717, #718, #812, #826, #837, #865 | Bridge profile at add time (STARTTLS probe, pinned certificate in mbsync, msmtp, curl and neomutt, All Mail/Folders/Labels excluded, no FCC, longer timeouts, hydroxide fallback); mw bridge user service with keyring guard; mailsync skips a down or re-certified Bridge with one notification; mw repin |
53a1414, 679e7f4, 643379e, ef8cd56 |
| 6 doctor | #984, #990 (support questions) | mw doctor checks secret, Bridge, pin, IMAP, SMTP, folders and sync per account |
7445b5e |