v0.3.31
Released 2026-09-27
Security
- Python clients now JSON-escape
$VARvalues.langchain-atomicmail,pydantic-ai-atomicmailand the Dify plugin substituted$VARvalues into the JMAP JSON unescaped, so a crafted inbound subject could add method calls to areply.jsonbatch (reachable since 0.3.30). Values are now escaped in string context, like the TypeScript runtime. Python callers who pre-escaped values (for example\nfor a newline) should now pass raw text.
Fixed
reply.jsonpicks its recipient like the hosted MCP server (first usable Reply-To, else From, else Sender) and replies to that one address only. Line breaks in the subject collapse to a space and an existingRe:is kept.- Send examples in
helpand the docs now file the sender's copy in Sent and clear$drafton success, like the bundled presets. list_sent.jsonreturnskeywords.