Changelog
Major updates to Horus, newest first. Cryptography, transport, and privacy architecture do not change between releases — what changes is how well they work and what you can do with them.
-
0.9.9 August 2026 Latest
New
- Native call UI on iOS — incoming and active calls now use the system lock-screen experience and Dynamic Island.
- Video calls — camera feed is encrypted and travels the same sealed path as everything else.
- Front/back camera toggle during a video call, without interrupting the connection.
- Wake-on-call — when someone calls and your screen is off, the system wakes and rings without requiring the app to be open. Requires Wake when closed to be enabled.
- Missed call notification — shown locally on the device when a call ended while the app was unreachable.
- @username search — if someone has claimed a handle and set themselves as findable, you can start a new invite from their @name without asking them for a link.
Improved
- Message delivery is meaningfully faster — the relay connection is reused across sends rather than re-established each time.
- In-app notifications — messages from other conversations show as an in-app banner; if you are already in that chat, nothing appears.
- System banners suppressed while the app is open — the in-app banner handles foreground alerts instead.
- Delivery ticks — single tick when the relay confirms, double ticks when the other side has seen the message. Encrypted inside the session.
- Presence gradient in the chat header transitions smoothly between states: settling, live, and network error.
- New messages blur-fade in rather than appearing instantly.
- Reaction chips use frosted glass and overlap the message corner.
Fixed
- Calls failed silently when encryption was active. Audio path rebuilt from the ground up.
- Some messages were not received when both users were backgrounded at the same time.
- Back button in the chat toolbar lost its circular glass treatment. Restored.
- Header pill resized when the typing indicator appeared. Now holds a fixed height.
- Emoji reactions overflowed the picker boundary.
-
0.9.5 June 2026
New
- Group chats — add people you already have as 1:1 contacts. No Horus group server. History stays on-device.
- Voice notes — recorded locally, sealed in the transcript, delivered over the same path as text.
- File sharing — any file type, size-limited by what the encrypted path can carry.
- Emoji reactions — long-press a message to react. Reactions travel inside the encrypted session.
- App Lock — optional biometric or passcode gate on the app UI. Off by default.
- Nearby pairing over Bluetooth — stand next to someone, match a short code, skip the QR step.
Improved
- Tor bootstrap is faster on cold start — directory state cached more aggressively between launches.
- Outbox flushes in the correct order when the path comes back up after being offline.
- QR scanner is more tolerant of low light and angled scans.
- Android call alerts now use the system high-priority channel on all tested versions.
Fixed
- First message after accept was sometimes lost if the creator was briefly offline during the handshake window. Pre-accept buffer now flushes correctly.
- Large photos caused a memory spike before sealing. Now resized and compressed before entering the encryption pipeline.
- Accepting an invite a second time after dismissal no longer creates a duplicate contact.
-
0.9.0 March 2026
New
- Dark mode — follows the system or can be forced.
- Optional @ handle — claim a username so people who know it can send a new invite without a link.
- Invite expiry controls — set how long an unused invite stays valid.
- Wake when closed — opt-in push wake. A content-free ping only; no message preview reaches the push host.
- Stay connected — keeps the path alive while the app is backgrounded.
- Photo messages — inline previews in the chat, compressed and sealed like text.
Improved
- Pairing over a remote link retries internally on brief circuit interruptions.
- History sealed at rest using the device keystore / Keychain.
- Scroll performance in long conversations.
Fixed
- Mic permission was requested at startup on some Android devices — now requested only at first call.
- Unread badge count showed stale numbers after switching tabs.
-
0.8.0 November 2025
New
- Voice calls — encrypted, over the same sealed path as messages.
- Timed messages — set a TTL; the other side's copy wipes itself after the countdown.
- Mute conversations — muted chats still deliver, just do not banner.
- Message editing — changes travel inside the encrypted session; edit history is not retained.
- Reply threading — quote a specific message; the reference is encrypted along with the reply.
Improved
- Tor embedded library updated — cold-start time reduced on most devices.
- Invite links are shorter and easier to share without truncation.
Fixed
- Keyboard overlap on iPhone models with a home bar sometimes hid the composer.
- App crashed on Android 12 when the system revoked the Bluetooth permission mid-session.
-
0.7.0 August 2025
New
- Delete for everyone — asks all parties to wipe the message on their device. Not a server delete; the request is itself an encrypted message.
- Archive conversations — hides from the main list without deleting history or stopping delivery.
- Pin conversations to the top of the inbox.
- iOS and Android now share one protocol implementation — conversations are cross-platform from this release.
Improved
- Old session keys wiped from memory sooner after advancing the ratchet.
- Scroll-to-bottom button in long conversations.
- Timestamps show relative time for recent messages.
-
0.5.0 May 2025
Initial release
- 1:1 encrypted messaging. No phone number. No account. Keys stay on the device.
- Invite-based pairing via link or QR. Invites are one-time use and expire.
- Double Ratchet with a post-quantum hybrid step in the invite handshake.
- Offline outbox — messages queue on-device and send when the path is available.
- Local delivery receipts — sent / delivered / read ticks, encrypted inside the session.
- iOS 16+ and Android 10+ supported.
Versions before 0.5.0 were internal only. Questions go to Support.