Skip to content

feat(ui): make the live persona unmistakable #368

Description

@kNoAPP

Part of #353. Phase 3. Depends on the switch ceremony.

Problem or Motivation

Once a user holds several personas, the most likely failure is no longer cryptographic — it is human. Sending a message from the wrong identity cannot be undone: the packet is on the air, signed by a key the user did not mean to use, and on a mesh there is no recall.

Phases 1 and 2 make the personas exist and switch correctly. Nothing yet makes the live one unmistakable at a glance.

Proposed Solution

Small, cheap affordances that make the active persona impossible to mistake.

Per-identity accent colour

Stored in the persona's vault metadata and applied to the chrome — the header, the action bar, or both. The existing theming already runs on CSS variables in app/globals.css, so this is a variable override rather than new styling.

Must work in light and dark, and must not be the only signal, since colour alone fails for colour-blind users and in monochrome. Pair it with the label.

Fingerprint avatar

A deterministic glyph or colour block derived from the public key, shown next to the persona's name. Useful beyond identity switching — it is the same problem contacts already have, so consider whether it belongs somewhere shared rather than scoped to personas.

Contacts-to-re-share nudge

After a switch, the persona's contacts cannot reach the user until they re-add the new key — contacts survive the import but their ECDH secret no longer matches. A dismissable prompt offering to re-share the contact card closes a loop that otherwise leaves the user wondering why nobody replies.

This one is arguably the most valuable of the three, because it addresses a genuine confusion rather than a cosmetic one. Consider pulling it forward into the switch ceremony if it proves load-bearing there.

Constraints

All strings localized. Accent colours are per-radio preferences and therefore travel in the persona's vault metadata, not localStorage — only locale and theme are permitted there, per AGENTS.md.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions