- New rooms (public too) and direct messages are end-to-end encrypted by
default.
- Per-message trust: "Not verified" for sessions you haven't verified,
and what is wrong for unsigned sessions, mismatched keys or plain text
in an encrypted room (src/matrix/trust.ts).
- Verify a person's identity in a room you share (your DM first), and
QR-code verification both ways: show ours, scan theirs with the camera
(qrcode-generator, jsqr).
- Warnings when someone's identity changes, with acknowledge, verify
again or withdraw verification.
- Encrypted thumbnails for large images.
- A tab-only session encrypts its crypto store with a key kept in
sessionStorage; stores unused for two weeks are deleted.
- Reset encryption fixed: new secret storage first, so the new
cross-signing keys survive a stale /keys/query answer; status checks
no longer query our own keys mid-setup.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>