The rest of what the parity scrub found on iOS and not here: show
whether contacts are online, show the time on messages, larger message
text, and light/dark/system. All four are wired to the thing they name —
the presence dot, the timestamp above a bubble, the body size, and the
theme — because a switch that stores a value and changes nothing is the
failure this whole exercise keeps turning up.
⚠️ **There is no "last seen" setting, and that is deliberate.** Android
does not show last seen anywhere; the only `seenAt` in the app is about
missed calls. iOS does show it. So the gap there is a missing FEATURE,
and adding a switch for something the app never draws would be exactly
the decoration the scrub exists to catch. Written down in
`DisplaySettings` so the next person does not "fix" it by adding one.
🔴 **Named for what they do.** iOS shipped "Show online status" on a
Privacy & Security screen, where every messenger uses those words for the
reciprocal thing — it only ever hid other people's dots from your own
phone. That was renamed today in ios!140; this is named that way from the
start, and the section says out loud that contacts are still told when
you are online whichever way it is set.
Two details worth the words:
- The base body size is **16sp because the kit says so** for a message
body, and `ChatScreens` says so at the point it draws one. A larger-
type switch that restyled every message when turned OFF would be a
worse bug than the absence it fixes. Pinned by a test.
- With timestamps off the `Text` is omitted rather than drawn empty. An
empty `Text` still takes its line height, so the setting would have
left a blank gap above every message.
1183 tests, 0 failures.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>