{"id":"6a39cec7157c1cdb268e677f","title":"2026 06 23","path":"how-to/committee/release-notes/2026-06-23","contentMarkdown":"# 23-Jun-2026 — single-pane mobile UX, committee role emails, inline images, reply addressing, diagram...\n\n## [build 717](https://github.com/nbarrett/ngx-ramblers/actions/runs/27992416765) — [commit 715cc45](https://github.com/nbarrett/ngx-ramblers/commit/715cc45fe8888178d3125159b913bf750351961c)\n\n_____\n\nA round of improvements to the inbox, the email composer and committee notifications, plus a fix that makes diagrams render reliably on technical articles.\n\n## Inbox on mobile\n\n- 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.\n- Bigger touch targets for conversation rows and reply buttons.\n- Landscape phones (wide but short) are treated as mobile, so they get the single-pane layout too.\n\n## Inbox toolbar\n\n- Two rows at every size: inbox icon and mailbox picker on the first row, action buttons on the second.\n- 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.\n- When the inbox is maximised the toolbar collapses to one row, with the logo, icon, picker and buttons all in line.\n\n## Unread filter\n\n- The passive \"N unread\" badge has been removed; the funnel filter button is now the single unread control.\n- 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.\n\n## Maximise and restore\n\n- Maximise is hidden on phones, for both the inbox and the composer.\n- 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.\n- Replying from a maximised inbox opens the composer maximised too.\n\n## Email composer\n\n- Full-width stepper, with the active step's label and hint shown as a caption below the circles.\n- The send button now reads \"Send\", with the full description in a tooltip.\n- The page title shares one row with Exit composer and Maximise; Exit composer is full width on mobile.\n- Removed the \"New draft\" / \"Reply draft\" status labels.\n- On the inbox, the page title and breadcrumb are hidden on mobile so the icon and mailbox picker are the first thing on screen.\n\n## Messages\n\n- 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.\n- 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.\n- The most recent message in a thread is expanded by default.\n\n## Replying\n\n- Reply and Reply all now appear on every message, including ones you sent.\n- A reply is addressed to the person the thread is with (the address they actually wrote from), whichever message you reply from.\n- 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.)\n\n## Committee notifications use the role email\n\n- 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.\n- A member with several roles uses the first role that has an email.\n- Ordinary members (for example, someone who submitted an expense) are unaffected.\n- Sender, reply-to and bcc were already role-based; this aligns the To address as well.\n\n## Login\n\n- The username field no longer auto-capitalises on mobile, so usernames stay lowercase.\n\n## Notification digest\n\n- 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).\n\n## Diagrams on technical articles\n\n- 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.\n\n## Under the hood\n\n- The \"Replying from a shared inbox\" notice is now a shared alert component, so its responsive layout lives in one place.\n- 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.","contentHtml":"<h1>23-Jun-2026 — single-pane mobile UX, committee role emails, inline images, reply addressing, diagram...</h1>\n<h2><a href=\"https://github.com/nbarrett/ngx-ramblers/actions/runs/27992416765\">build 717</a> — <a href=\"https://github.com/nbarrett/ngx-ramblers/commit/715cc45fe8888178d3125159b913bf750351961c\">commit 715cc45</a></h2>\n<hr>\n<p>A round of improvements to the inbox, the email composer and committee notifications, plus a fix that makes diagrams render reliably on technical articles.</p>\n<h2>Inbox on mobile</h2>\n<ul>\n<li>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.</li>\n<li>Bigger touch targets for conversation rows and reply buttons.</li>\n<li>Landscape phones (wide but short) are treated as mobile, so they get the single-pane layout too.</li>\n</ul>\n<h2>Inbox toolbar</h2>\n<ul>\n<li>Two rows at every size: inbox icon and mailbox picker on the first row, action buttons on the second.</li>\n<li>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.</li>\n<li>When the inbox is maximised the toolbar collapses to one row, with the logo, icon, picker and buttons all in line.</li>\n</ul>\n<h2>Unread filter</h2>\n<ul>\n<li>The passive &quot;N unread&quot; badge has been removed; the funnel filter button is now the single unread control.</li>\n<li>Its label reflects the current view (&quot;All messages&quot;, or &quot;N unread&quot; when filtered), and when active it shows a pressed grey state rather than a colour fill.</li>\n</ul>\n<h2>Maximise and restore</h2>\n<ul>\n<li>Maximise is hidden on phones, for both the inbox and the composer.</li>\n<li>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.</li>\n<li>Replying from a maximised inbox opens the composer maximised too.</li>\n</ul>\n<h2>Email composer</h2>\n<ul>\n<li>Full-width stepper, with the active step&#39;s label and hint shown as a caption below the circles.</li>\n<li>The send button now reads &quot;Send&quot;, with the full description in a tooltip.</li>\n<li>The page title shares one row with Exit composer and Maximise; Exit composer is full width on mobile.</li>\n<li>Removed the &quot;New draft&quot; / &quot;Reply draft&quot; status labels.</li>\n<li>On the inbox, the page title and breadcrumb are hidden on mobile so the icon and mailbox picker are the first thing on screen.</li>\n</ul>\n<h2>Messages</h2>\n<ul>\n<li>Inline images now render. Gmail messages that embed images by Content-ID were previously dropped; they are now stored, and their <code>cid:</code> references are rewritten to the hosted image URL.</li>\n<li>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&#39;s Times serif. Emails that carry their own fonts still use them.</li>\n<li>The most recent message in a thread is expanded by default.</li>\n</ul>\n<h2>Replying</h2>\n<ul>\n<li>Reply and Reply all now appear on every message, including ones you sent.</li>\n<li>A reply is addressed to the person the thread is with (the address they actually wrote from), whichever message you reply from.</li>\n<li>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.)</li>\n</ul>\n<h2>Committee notifications use the role email</h2>\n<ul>\n<li>Notifications addressed to a committee member now go to the committee (role) email rather than the member&#39;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.</li>\n<li>A member with several roles uses the first role that has an email.</li>\n<li>Ordinary members (for example, someone who submitted an expense) are unaffected.</li>\n<li>Sender, reply-to and bcc were already role-based; this aligns the To address as well.</li>\n</ul>\n<h2>Login</h2>\n<ul>\n<li>The username field no longer auto-capitalises on mobile, so usernames stay lowercase.</li>\n</ul>\n<h2>Notification digest</h2>\n<ul>\n<li>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).</li>\n</ul>\n<h2>Diagrams on technical articles</h2>\n<ul>\n<li>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.</li>\n</ul>\n<h2>Under the hood</h2>\n<ul>\n<li>The &quot;Replying from a shared inbox&quot; notice is now a shared alert component, so its responsive layout lives in one place.</li>\n<li>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.</li>\n</ul>\n"}