fix: webhook/email avatar fallback + inline settings form errors (LC-356, LC-360) #370
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/lc-356-360-audit-ux"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Two UX/correctness MED findings from the UI audit.
just testandjust test-saasgreen (one unrelated flake inemail_notification_post_pathconfirmed by isolated + full re-run).LC-360 - webhook/email avatars degrade gracefully
The webhook (LC-74) and email-ingress (LC-77) message avatars rendered an external URL as a bare
<img>with no error handling, so a broken/blocked URL showed a broken-image icon (unlike the bridge path, which falls back to initials). Add the sameonerrorinitials fallback +loading="lazy". The LC-77 render fixtures are updated to the new markup.LC-356 - inline form errors
post_profileandpost_delete_accountreturnedAppError::BadRequeston validation failure (too-long bio/name/email, invalid email, wrong avatar type/size, wrong confirm phrase, sole-admin / sole-owner blocks), rendering a full-page error with a "back home" link and losing the user's place on the highest-stakes forms. Add a sharedsettings_error_redirecthelper that PRG-redirects to/settings?error=<msg>(mirroring the existing?saved=1flash);get_settingsreads it and the template renders a danger banner. Messages are fixed server strings (never raw user input), Askama-escaped on render. Tests: an over-long profile field and each delete-account blocker now redirect to/settings?error=and persist nothing.Closes LC-356, LC-360.