# 23-Jun-2026 — real message-time ordering, reconnect button, and mobile density [#293](https://github.com/nbarrett/ngx-ramblers/issues/293)

## [build 719](https://github.com/nbarrett/ngx-ramblers/actions/runs/28038017345) — [commit 2d74e56](https://github.com/nbarrett/ngx-ramblers/commit/2d74e56e05607815feb1952d1e3883345d137a94)

_____

- Conversation list and thread messages now sort by the message's actual
receivedAt/sentAt rather than the time it was imported. Thread firstSeenAt/
lastSeenAt are derived from the message time with $max/$min so the latest and
earliest message win regardless of import order. Previously every imported
thread carried the import timestamp, which displayed the wrong time and made
the ordering meaningless.
- Promoted the Newest/Oldest sort toggle to the top button row so one control
governs both the conversation list and the messages within a thread.
- Added a Reconnect button on a connected Gmail mailbox so a revoked or expired
token can be re-authorised in place, preserving the mailbox settings and the
Pub/Sub watch. The connect button previously only appeared when no token was
stored, leaving no way to reconnect a mailbox whose token had died.
- Mobile: hide the redundant Conversations heading and the count line (shown
only while searching), give the scrollable list more height, and make the
search box padding symmetric.