v34.1

The-Vibe-Company/megaparsev34.1Jun 26, 2026by pierre-b

AI Summary

This release focuses on stability and compatibility fixes, specifically improving SMTP integration with Azure Communication Services, restoring notification center unsubscribe functionality, and preventing console crashes for new root accounts.

Key Highlights

  • SMTP integration now supports AUTH LOGIN for Azure Communication Services
  • Notification center unsubscribe functionality restored
  • Root account console crash fixed
  • Visual editor MJ-button padding issue resolved for 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).