Skip to content

Ekko 0.7.1 — first-contact fixes

Choose a tag to compare

@github-actions github-actions released this 18 Jul 18:58
· 13 commits to main since this release

Everything below came out of one day of live cross-client testing (browser ↔ browser and browser ↔ iOS).

Secure-channel setup

  • First contact with an account connection no longer publishes a "Secure-channel setup" message into the chat: the sender checks the account mailbox first (staging its session there, or adopting the one the peer staged). The in-chat setup only remains for peers you aren't connected to on Ekko — or when offline.
  • Restoring on a fresh browser adopts the @handle the identity already owns, so the popup can't show an empty "claim a handle" prompt right after onboarding said "You are @you" (#6).

Chat auto-linking

  • Phone numbers linked on an account are canonicalized to bare digits everywhere. A "+39 333 …" typed on the phone never matched the digits an adapter reads off the page, so chats silently stayed unlinked at "Encrypted with @contact — click the Ekko button to read".
  • Auto-link now matches the platform username or a linked phone number — digits-for-digits against phone-shaped handles only, never against ids that merely contain digits. Telegram exposes a mutual contact's phone, and a phone is often the only identifier two people have linked.
  • When a chat can't be confirmed as a 1:1 but the vault already holds the session that sealed its messages, the glyph offers "Read messages from @contact". Binding unblocks reading only; sending stays paused until the chat is confirmed.

Telegram

  • An identity read landing before Telegram Web wrote its user record was cached as a permanent "no username" for the tab's life, killing auto-link until the next reload. Misses now retry after a short backoff.
  • WebK's thread id no longer falls back to a bubble's peer id, which could belong to the previously open chat. Header id, or the visible "identifying this chat" state — never a guess. Thanks @MN012 for independently running down the same root cause (#5).

Repo

  • The nightly release banks its download counts before replacing assets, so the README badge accumulates instead of resetting.

Install: unzip, then chrome://extensions → Developer mode → Load unpacked → pick the unzipped folder. The Firefox zip is experimental.