odysseus/mcp_servers
romanreiki fa45bdf4f3 fix(email): resolve Sent/Trash/Archive/Junk folders by IMAP special-use flags, not English name substrings
Localized (non-English) Gmail accounts return special-use mailbox names in
the account's own language, encoded as modified UTF-7. Folder resolution
previously guessed a mailbox's role by checking whether its raw name
contained an English substring like "sent"/"trash"/"archive" - this never
matches for e.g. a Russian-language Gmail account, so list_emails,
search_emails, and the web UI's own folder listing/select all silently
treated the Sent folder as nonexistent or unlabeled.

- mcp_servers/email_server.py: role_flags/candidates in _resolve_folder and
  _folder_role_from_name now include "sent"; _list_emails/_search_emails
  resolve the folder name before SELECT instead of using the literal name.
- routes/email_routes.py: same fix in the independently-duplicated
  _resolve_mail_folder/_folder_role_from_name/_list_emails_sync used by the
  REST API and web UI. Added _folder_role_from_flags() to read the actual
  IMAP LIST response's special-use attributes (RFC 6154 + Gmail
  extensions), which are locale-independent, and expose them via a new
  roles field on GET /api/email/folders.
- static/js/emailInbox.js, static/js/emailLibrary.js: folder-tab role/label
  logic now prefers the server-supplied role over guessing from the name,
  falling back to the old substring guess only when no role is provided
  (fixture/stale-cache/timeout response paths).
2026-07-28 21:46:05 +00:00
..
__init__.py Odysseus v1.0 2026-05-31 23:58:26 +09:00
email_server.py fix(email): resolve Sent/Trash/Archive/Junk folders by IMAP special-use flags, not English name substrings 2026-07-28 21:46:05 +00:00
image_gen_server.py Merge verified Odysseus fixes 2026-07-23 14:49:02 +00:00
memory_server.py fix(mcp): scope memory server by owner (#4315) 2026-06-16 03:18:17 +01:00
rag_server.py Fix RAG remove_directory wiping the entire shared collection (#1660) (#1734) 2026-06-03 13:29:51 +09:00