23-Jun-2026 — single-pane mobile UX, committee role emails, inline images, reply addressing, diagram...
build 717 — commit 715cc45
A round of improvements to the inbox, the email composer and committee notifications, plus a fix that makes diagrams render reliably on technical articles.
Inbox on mobile
- Phones now show the conversation list and the open message one at a time: tap a conversation to open it, use the back button (in the toolbar) to return. The cramped desktop two-pane grid is no longer forced onto narrow screens.
- Bigger touch targets for conversation rows and reply buttons.
- Landscape phones (wide but short) are treated as mobile, so they get the single-pane layout too.
Inbox toolbar
- Two rows at every size: inbox icon and mailbox picker on the first row, action buttons on the second.
- On mobile the action buttons form a two-column grid with the last button spanning full width; on desktop they sit in a single row.
- When the inbox is maximised the toolbar collapses to one row, with the logo, icon, picker and buttons all in line.
Unread filter
- The passive "N unread" badge has been removed; the funnel filter button is now the single unread control.
- Its label reflects the current view ("All messages", or "N unread" when filtered), and when active it shows a pressed grey state rather than a colour fill.
Maximise and restore
- Maximise is hidden on phones, for both the inbox and the composer.
- On desktop the Maximise/Restore button now sits inline in the action row instead of floating out of line, and the maximised header is a single row.
- Replying from a maximised inbox opens the composer maximised too.
Email composer
- Full-width stepper, with the active step's label and hint shown as a caption below the circles.
- The send button now reads "Send", with the full description in a tooltip.
- The page title shares one row with Exit composer and Maximise; Exit composer is full width on mobile.
- Removed the "New draft" / "Reply draft" status labels.
- On the inbox, the page title and breadcrumb are hidden on mobile so the icon and mailbox picker are the first thing on screen.
Messages
- Inline images now render. Gmail messages that embed images by Content-ID were previously dropped; they are now stored, and their
cid:references are rewritten to the hosted image URL. - Plain emails read as they would in a normal mail client: the message frame now defaults to a system sans-serif font and comfortable line spacing instead of the browser's Times serif. Emails that carry their own fonts still use them.
- The most recent message in a thread is expanded by default.
Replying
- Reply and Reply all now appear on every message, including ones you sent.
- A reply is addressed to the person the thread is with (the address they actually wrote from), whichever message you reply from.
- One-to-one replies no longer start with a merge-field greeting placeholder; you write your own greeting. (The merge greeting only applies to campaign sends.)
Committee notifications use the role email
- Notifications addressed to a committee member now go to the committee (role) email rather than the member's personal email. If the member holds a role with an email, that role email is used; otherwise it falls back to their personal email so nobody is missed.
- A member with several roles uses the first role that has an email.
- Ordinary members (for example, someone who submitted an expense) are unaffected.
- Sender, reply-to and bcc were already role-based; this aligns the To address as well.
Login
- The username field no longer auto-capitalises on mobile, so usernames stay lowercase.
Notification digest
- The digest de-duplicates rows by sender and subject, and builds each preview from cleaned text (no raw URLs, view-in-browser preheaders or logo noise).
Diagrams on technical articles
- Diagrams now render reliably when a page has several of them across separate content rows, and when a diagram is added anywhere on a page. Rendering is queued so diagrams no longer race each other and paint blank; diagrams already drawn are skipped.
Under the hood
- The "Replying from a shared inbox" notice is now a shared alert component, so its responsive layout lives in one place.
- Inbox styling moved to Bootstrap 5 conventions: styles in the component sass file, the Ramblers palette and Bootstrap tokens instead of hardcoded colours, utility classes and themed buttons. Tiptap editor toolbar icons are themed to match.