{"id":"6a5eb0a3bf0e64aeada8a79c","title":"2026 07 21","path":"how-to/committee/release-notes/2026-07-21","contentMarkdown":"# 21-Jul-2026 — inbox: prevent role emails becoming externalAddress on inbox threads [#306](https://github.com/nbarrett/ngx-ramblers/issues/306)\n\n## [build 784](https://github.com/nbarrett/ngx-ramblers/actions/runs/29787107572) — [commit cd721a0](https://github.com/nbarrett/ngx-ramblers/commit/cd721a0a334fb5605fd49b4ee83a4955cf7e0559)\n\n_____\n\n## What's new\n\nReplying to an inbox thread sometimes addressed the reply to a role email (e.g. chairman@ekwg.co.uk or contact-us@ekwg.co.uk) instead of the actual external correspondent. This happened when the first message stored on a thread was a Brevo self-send or outbound composer send whose from/to was a role email — the role email was locked in as externalAddress and never corrected, so subsequent replies went to the role mailbox instead of the person who wrote the message.\n\n## At a glance\n\n- Replies to inbox threads always address the original external correspondent, not the role email\n- Existing threads with stale role-email externalAddress values are corrected when the next real external message arrives\n- The reply-to field falls back to the selected message sender when externalAddress is null\n- The CC suggestion alert in the email composer now offers individual role buttons alongside 'Cc All' and 'Dismiss'\n- Null-guarded the inbox template and composer handoff for threads with no externalAddress\n\n## What's new\n\nThe mobile inbox now keeps its filter controls visually balanced on browsers that do not offer notification controls, including the iPhone browser view.\n\n## At a glance\n\n- Let Refresh use the full final row when notifications are unavailable.\n- Preserve the two-column Refresh and notifications row when both controls are present.","contentHtml":"<h1>21-Jul-2026 — inbox: prevent role emails becoming externalAddress on inbox threads <a href=\"https://github.com/nbarrett/ngx-ramblers/issues/306\">#306</a></h1>\n<h2><a href=\"https://github.com/nbarrett/ngx-ramblers/actions/runs/29787107572\">build 784</a> — <a href=\"https://github.com/nbarrett/ngx-ramblers/commit/cd721a0a334fb5605fd49b4ee83a4955cf7e0559\">commit cd721a0</a></h2>\n<hr>\n<h2>What&#39;s new</h2>\n<p>Replying to an inbox thread sometimes addressed the reply to a role email (e.g. <a href=\"mailto:chairman@ekwg.co.uk\">chairman@ekwg.co.uk</a> or <a href=\"mailto:contact-us@ekwg.co.uk\">contact-us@ekwg.co.uk</a>) instead of the actual external correspondent. This happened when the first message stored on a thread was a Brevo self-send or outbound composer send whose from/to was a role email — the role email was locked in as externalAddress and never corrected, so subsequent replies went to the role mailbox instead of the person who wrote the message.</p>\n<h2>At a glance</h2>\n<ul>\n<li>Replies to inbox threads always address the original external correspondent, not the role email</li>\n<li>Existing threads with stale role-email externalAddress values are corrected when the next real external message arrives</li>\n<li>The reply-to field falls back to the selected message sender when externalAddress is null</li>\n<li>The CC suggestion alert in the email composer now offers individual role buttons alongside &#39;Cc All&#39; and &#39;Dismiss&#39;</li>\n<li>Null-guarded the inbox template and composer handoff for threads with no externalAddress</li>\n</ul>\n<h2>What&#39;s new</h2>\n<p>The mobile inbox now keeps its filter controls visually balanced on browsers that do not offer notification controls, including the iPhone browser view.</p>\n<h2>At a glance</h2>\n<ul>\n<li>Let Refresh use the full final row when notifications are unavailable.</li>\n<li>Preserve the two-column Refresh and notifications row when both controls are present.</li>\n</ul>\n"}