v34.1
pingcap/autoflowv34.1Jun 26, 2026by pierre-b
AI Summary
This release addresses critical stability and integration issues, specifically improving compatibility with Azure Communication Services and fixing the notification center's unsubscribe mechanism. It also resolves a crash for newly installed root accounts and fixes MJML visual editor rendering issues.
Key Highlights
- Fixed Workspace SMTP integrations to support `AUTH LOGIN` for Azure services.
- Fixed notification center unsubscribe functionality and endpoint routing.
- Resolved console crash for root accounts on first login.
- Fixed MJML button inner padding rendering in Gmail.
Full Release Notes
- **Fix**: Workspace SMTP integrations now connect to servers that advertise only `AUTH LOGIN` (such as Azure Communication Services) — the raw SMTP sender hardcoded `AUTH PLAIN` and was rejected with a 504 before credentials were ever checked. It now reads the AUTH mechanisms advertised in EHLO and uses LOGIN when PLAIN isn't offered, preferring PLAIN when both are available (#368). - **Fix**: Unsubscribing from the notification center works again. The widget's "Unsubscribe" action and per-list toggle (and the console) now post to a dedicated `/unsubscribe` endpoint, while `/unsubscribe-oneclick` is reserved for the RFC 8058 mail-client one-click carried in the `List-Unsubscribe` header (it still accepts the legacy JSON body as a backward-compatible shim). When v34.0 made `/unsubscribe-oneclick` strictly RFC 8058 for the Gmail/Yahoo one-click fix, the notification center's JSON request was rejected with `400 "Invalid request"` and contacts stayed subscribed (#371). - **Fix**: A freshly installed root account no longer crashes the console on first login. Before any workspace existed, `user.me` returned `"workspaces": null` instead of `[]` for the `ROOT_EMAIL` user — the root path returns the workspace list straight from the database, which is a nil slice when empty — and the console crashed with `Cannot read properties of null (reading 'length')` instead of redirecting to workspace creation. The repository now returns an empty (non-nil) slice so the API always serializes `[]`, and the console normalizes a null `workspaces` to an empty array as a safeguard (#367). - **Fix**: An `mj-button` (or `mj-social`) whose inner padding was edited in the visual editor no longer vanishes in Gmail — the inner-padding object was compiled into the CSS as a Go map literal (`padding:map[bottom:0px top:0px]`) that strict clients reject; it now compiles to a valid CSS shorthand, and the editor no longer stores padding as an object (#369).