Skip to content

Use shields for encryption status, keep locks for unreadable content#915

Merged
mremond merged 2 commits into
mainfrom
mr/shield-encryption-indicators
Jul 8, 2026
Merged

Use shields for encryption status, keep locks for unreadable content#915
mremond merged 2 commits into
mainfrom
mr/shield-encryption-indicators

Conversation

@mremond

@mremond mremond commented Jul 8, 2026

Copy link
Copy Markdown
Member

The chat header showed a ShieldCheck for a verified peer while every one of that peer's messages showed a plain Lock — the same encryption relationship read as two different symbols.

This splits the two metaphors consistently across the conversation surfaces:

  • Shield = the conversation's encryption/trust status — per-message timestamp indicator, ChatHeader, composer reminder bar, and the contact-profile security panel (ShieldCheck/Shield/ShieldAlert/ShieldX/ShieldOff by state).
  • Lock = content you can't read right now — encrypted/undecryptable message placeholders, the reply-quote-hidden chip, and your own passphrase-locked key (tap to unlock).

Colors still route through trustVisual(); only the glyphs changed.

The chat header showed a ShieldCheck for a verified peer while every one of that peer's messages showed a plain Lock, so the same encryption relationship read as two different symbols.

Split the two metaphors consistently:
- Shield = the conversation's encryption/trust status (per-message timestamp indicator, ChatHeader, composer reminder bar, contact-profile security panel).
- Lock = content you can't read right now (encrypted/undecryptable placeholders, reply-quote-hidden chip, and your own passphrase-locked key).

Colors still route through trustVisual(); only the glyphs changed.
@mremond mremond added this to the 0.17.1 milestone Jul 8, 2026
The header's encrypted-unverified state now renders <Shield/> instead of <Lock/>; the manual lucide-react mock in ChatView.test.tsx only stubbed Lock/ShieldCheck, so the icon resolved to undefined and the render threw. Add Shield/ShieldAlert/ShieldOff/ShieldX stubs.
@mremond mremond merged commit 9789f2d into main Jul 8, 2026
@mremond mremond deleted the mr/shield-encryption-indicators branch July 8, 2026 13:31
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.

1 participant