What's Changed
MCP server — use vimail from AI clients
vimail mcp— a Model Context Protocol server on stdio for Claude Code, Claude Desktop, and other local AI clients. Reads (list_accounts,list_folders,list_messages,read_message,search_messages) are served from the local cache and never open IMAP connections. (#31)- Write tools —
save_draft,delete_draft,mark_read,delete_message(Trash only) and an explicitsynctool; writes go through the same offline queue as the TUI.mark_read/delete_messagetake auidsbatch. (#32, #39) - Mail review in two calls —
list_recent_messagesscans a time window across every account;read_messagesreads the selected bodies as a batch without marking them read. (#41) - Sending is opt-in —
send_emailexists only with[mcp] allow_send = true; otherwise it is not registered at all. (#33) - Safe next to the TUI — queued operations run exactly once across processes, account syncs take a cross-process lock, and the TUI refreshes itself when the MCP process changes the cache. (#30, #37, #40)
Themes
cliamp(Winamp-style black/green) andomarchy(follows the current Omarchy palette, ANSI fallback). Every theme now passes a WCAG contrast gate. (#26)
Compose editor (Vim)
- Operators follow real Vim motion classes (
dw,cw,d0,dF, …);c{motion}+ typing undoes in one step. (#21) V+ddeletes whole lines and pastes linewise. (#42)- Count prefixes on editing commands:
2dd,3x,3J,2p,>>,<<. (#23) /?wrap correctly on the cursor line;n/Nkeep the search direction. (#24)
Reliability fixes
- Failed offline operations stay retryable, with exponential backoff; mark-read failures are no longer reported as success. (#28, #37)
- One recovery sync per folder on stale-UID bursts instead of one per message. (#29)
- Search deduplicates by
Message-ID, keeps real folder/UID handles for label copies, and searches encrypted bodies correctly. (#38) - MCP deletes use the server's real Trash mailbox; stale IMAP connections are replaced before batched writes; large deletes get per-chunk deadlines. (#40)
- Log rotation and 3-day retention are enforced during long sessions; the async logger is race-free. (#19, #20)
Security
- Go 1.26.6 and
golang.org/x/netv0.58.0 in both modules — govulncheck clean. (#17)
Project
CHANGELOG.mdintroduced; CI now enforces the standalonepkg/vimteasuite. (#18, #25)- The editor module is tagged separately as
pkg/vimtea/v0.2.0.
Full Changelog: v0.10.4...v0.11.0