Skip to content

fix(mobile): distinguish unknown presence on identity surfaces - #7383

Open
loganj wants to merge 1 commit into
fix/mobile-agent-presence-20260905from
fix/mobile-agent-presence-ui-20260905
Open

loganj wants to merge 1 commit into
fix/mobile-agent-presence-20260905from
fix/mobile-agent-presence-ui-20260905

Conversation

@loganj

@loganj loganj commented Sep 5, 2026

Copy link
Copy Markdown
Collaborator

🤖

Summary

When mobile didn't know someone's presence — right after opening the app, or when the relay simply had no data — DM headers, DM-list avatars and profiles showed that person as Offline, with the same gray dot as someone genuinely offline. This PR separates "we don't know" from "we know they're offline": unknown presence now reads Unknown with no dot or notch, while confirmed Online/Away/Offline look exactly as before.

  • Applies to the DM header, DM-list avatars, and the profile sheet. Avatar geometry is unchanged — the unconfirmed indicator is hidden, not reshaped.
  • Confirmed Online/Away/Offline presentation is untouched.
  • The profile exposes one presence accessibility label, with no duplicate screen-reader announcements.

Related issue

  • Fixes: N/A. No separate issue; the related work is the stack below.
  • Depends on fix(mobile): hydrate and refresh relay presence snapshots #7382 (declared base), which supplies the presence data — this PR is the visible half of that change.
  • Draft — not requesting merge yet; the security advisory doesn't run on this stacked base (it reviews main-based ranges).

Testing

  • Widget regressions cover unknown/online/away/offline transitions, fixed avatar bounds, DM-list colors, and profile semantics.
  • At the branch head: just mobile-check and the full mobile test suite pass independently, and every broader CI gate has successful evidence after isolated recovery runs (no monolithic local just ci run) — receipts in the exact-head evidence comment.
  • Verification is widget-test level; no native device or simulator run is claimed.

To see it: open a DM whose presence isn't confirmed yet (e.g. right after a cold open) — the header and profile now read Unknown instead of Offline.

Screenshots

Flutter production-widget test renders — not native-device screenshots or acceptance captures.

Scenario Before After
Profile sheet for a person whose presence isn't confirmed yet (e.g. right after a cold open) Before: the profile reads Offline with a gray dot — indistinguishable from actually offline After: the profile reads Unknown with no dot

Confirmed Online/Away/Offline presentations are unchanged by this PR.

Capture provenance

Rendered by the Flutter widget engine in a flutter test run (production widgets, production theme; no device or simulator). Before: this PR's declared base a8e8028bfb9bb67de2db03ed448839e2f3ab2b0d. After: its head dd955a0c2ac80ada39b416a2f8b7481afb8773bf.

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants