Block a user
Call failures in plain words: map every EC / voice-guard failure code to one sentence
Inventory of every call-failure surface as of today (host = cinny, EC = the fork):
Call failures in plain words: map every EC / voice-guard failure code to one sentence
Persisted PII without encryption: status message + expiry and unsent composer drafts sit in plaintext localStorage
Reviewed against the current code:
- Unsent composer drafts (
draft-msg-*) — already swept on logout since #41 (clearMsgDraftsinstate/plaintextCaches.ts). - **Status message +…
Persisted PII without encryption: status message + expiry and unsent composer drafts sit in plaintext localStorage
Missed-call entry in the timeline (local-only)
Done in c921f115. The ring event (m.rtc.notification, which the timeline previously hid) renders as a red "Missed call from bob" line with the ring's time, same style as the "joined/ended…
Missed-call entry in the timeline (local-only)
Undecryptable message: show the specific reason and the one action that fixes it
Undecryptable message: show the specific reason and the one action that fixes it
Verified first: the placeholder was the bare "Unable to decrypt message" for every code. Done in 0e267189:
utils/decryptionReason.ts maps every DecryptionFailureCode to one sentence + at…
Privacy: every page load contacts fonts.googleapis.com / fonts.gstatic.com for the VT323 font — self-host it
Done across the three repos:
- cinny
6f250353: VT323 (OFL) vendored as latin + latin-ext woff2 subsets inpublic/fonts/with@font-facein the existingcustom-fonts.css; the three…
Unify the two image viewers: timeline ImageViewer should open the gallery lightbox at that item