Stable v2.10.3
- fix(mail): answer unknown SMTP fields with an error code, not English prose
- feat(settings): sender name field for the panel's emails
- fix(settings): let the panel settings save the sender name and report ignored keys
- fix(mail): make the SMTP form talk to the backend and stop sending as enconf
- fix(notifications): SMTP form drops the dead encryption field, keeps the stored password and shows the server's reason
- fix(doctor): agent outages no longer double-alert, lists see live findings, 5xx is time-boxed
- fix(auth): take the white-label logo and title from the domain on every auth page
- fix(doctor): show the real outcome of a repair instead of a green OK
- feat(notifications): frame field and draft test mail in the envelope editor
- feat(mail): return the resolved frame beside the language map and pin the PUT contract
- feat(mail): add a frame that wraps header, body and footer
- feat(mail): send a test mail with an unsaved envelope draft, to the caller's own address
- fix(domains): say when the www alias reaches the certificate and report whether it did
- fix(container): treat an unreadable container state as unknown, not as missing
- fix(doctor): fixes report their real outcome, quarantine works, alerts survive an admin view
- fix(quota): never lock out sites that already use more than their limit
- fix(lint): pass the request context into the disk quota advisor check
- fix(quota): enforce the package disk limit on every site and keep it in sync
- fix(i18n): say Abonnement instead of Subscription throughout the German panel