Profile view: "Last active …" line from presence #150

Closed
opened 2026-09-17 22:49:23 -04:00 by jared · 1 comment
Owner

Show a single line on the user profile popover/panel — "Active now" / "Last active 12 min ago" / "Last active yesterday" — from the presence last_active_ago (+ currently_active) the SDK already receives (User.lastActiveAgo, lastPresenceTs).

Rules

  • Only when presence data exists for that user (Synapse only delivers presence between users who share a room, so nothing new is exposed). Users with "Hide Online Status" on report offline with no timestamp → show nothing, never "Last active" for them.
  • Same relative-time formatter as the timestamp-unification issue (#139).
  • No polling; re-render on the existing presence events.
Show a single line on the user profile popover/panel — "Active now" / "Last active 12 min ago" / "Last active yesterday" — from the presence `last_active_ago` (+ `currently_active`) the SDK already receives (`User.lastActiveAgo`, `lastPresenceTs`). ### Rules - Only when presence data exists for that user (Synapse only delivers presence between users who share a room, so nothing new is exposed). Users with "Hide Online Status" on report offline with no timestamp → show nothing, never "Last active" for them. - Same relative-time formatter as the timestamp-unification issue (#139). - No polling; re-render on the existing presence events.
jared added this to the Features 2026-Q4 milestone 2026-09-17 22:49:23 -04:00
jared added the enhancementpriority: lowarea: navigation labels 2026-09-17 22:49:23 -04:00
jared self-assigned this 2026-09-17 22:49:23 -04:00
Author
Owner

Done in dea1f7af: one line under the handle in the profile popover — 'Active now', 'Active just now', 'Last active 12 min ago / 3 hours ago / yesterday / 5 days ago / over a month ago' — from the presence the SDK already receives (currently_active + last_active_ago). Nothing without presence data or for an offline user with no timestamp (Hide Online Status users), so nothing new is exposed; re-renders on the existing presence events, no polling. Wording unit-tested; verified headless.

Done in `dea1f7af`: one line under the handle in the profile popover — 'Active now', 'Active just now', 'Last active 12 min ago / 3 hours ago / yesterday / 5 days ago / over a month ago' — from the presence the SDK already receives (`currently_active` + `last_active_ago`). Nothing without presence data or for an offline user with no timestamp (Hide Online Status users), so nothing new is exposed; re-renders on the existing presence events, no polling. Wording unit-tested; verified headless.
jared closed this issue 2026-09-19 23:20:00 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#150