{"id":"6a3aabe0fee4ff43486eea44","title":"2026 06 23 Build 719","path":"how-to/committee/release-notes/2026-06-23-build-719","contentMarkdown":"# 23-Jun-2026 — real message-time ordering, reconnect button, and mobile density [#293](https://github.com/nbarrett/ngx-ramblers/issues/293)\n\n## [build 719](https://github.com/nbarrett/ngx-ramblers/actions/runs/28038017345) — [commit 2d74e56](https://github.com/nbarrett/ngx-ramblers/commit/2d74e56e05607815feb1952d1e3883345d137a94)\n\n_____\n\n- Conversation list and thread messages now sort by the message's actual\nreceivedAt/sentAt rather than the time it was imported. Thread firstSeenAt/\nlastSeenAt are derived from the message time with $max/$min so the latest and\nearliest message win regardless of import order. Previously every imported\nthread carried the import timestamp, which displayed the wrong time and made\nthe ordering meaningless.\n- Promoted the Newest/Oldest sort toggle to the top button row so one control\ngoverns both the conversation list and the messages within a thread.\n- Added a Reconnect button on a connected Gmail mailbox so a revoked or expired\ntoken can be re-authorised in place, preserving the mailbox settings and the\nPub/Sub watch. The connect button previously only appeared when no token was\nstored, leaving no way to reconnect a mailbox whose token had died.\n- Mobile: hide the redundant Conversations heading and the count line (shown\nonly while searching), give the scrollable list more height, and make the\nsearch box padding symmetric.","contentHtml":"<h1>23-Jun-2026 — real message-time ordering, reconnect button, and mobile density <a href=\"https://github.com/nbarrett/ngx-ramblers/issues/293\">#293</a></h1>\n<h2><a href=\"https://github.com/nbarrett/ngx-ramblers/actions/runs/28038017345\">build 719</a> — <a href=\"https://github.com/nbarrett/ngx-ramblers/commit/2d74e56e05607815feb1952d1e3883345d137a94\">commit 2d74e56</a></h2>\n<hr>\n<ul>\n<li>Conversation list and thread messages now sort by the message&#39;s actual\nreceivedAt/sentAt rather than the time it was imported. Thread firstSeenAt/\nlastSeenAt are derived from the message time with $max/$min so the latest and\nearliest message win regardless of import order. Previously every imported\nthread carried the import timestamp, which displayed the wrong time and made\nthe ordering meaningless.</li>\n<li>Promoted the Newest/Oldest sort toggle to the top button row so one control\ngoverns both the conversation list and the messages within a thread.</li>\n<li>Added a Reconnect button on a connected Gmail mailbox so a revoked or expired\ntoken can be re-authorised in place, preserving the mailbox settings and the\nPub/Sub watch. The connect button previously only appeared when no token was\nstored, leaving no way to reconnect a mailbox whose token had died.</li>\n<li>Mobile: hide the redundant Conversations heading and the count line (shown\nonly while searching), give the scrollable list more height, and make the\nsearch box padding symmetric.</li>\n</ul>\n"}