← RETURN TO HOME
RELEASE HISTORY

Patch Notes

What's changed across Wiltkey releases — the app on the left, the relay server on the right. Newest first.

Client — Android App

1.0.4 In Testing

Shop, WiltKey Plus & avatar borders

  • NEW: Avatar borders — dress up your pixel avatar with a frame. The Tinfoil Hat is free for everyone (and the only one on the GitHub/website build); your border shows up for the people you chat with, in one-on-ones and group chats alike.
  • NEW: Shop — a tabbed store for optional extras: colour-palette packs for the pixel-art editor, avatar borders, larger pad sizes at pairing, and the WiltKey Plus subscription. Cosmetics are purely local and never touch your chats.
  • NEW: WiltKey Plus — an optional subscription that keeps your offline messages waiting on the relay for 72 hours instead of 24, and raises your file-transfer limit from 5 MB to 50 MB.
  • Larger pad options at pairing, and a heads-up if there isn't enough free space on your device before you generate a big pad.
  • The GitHub/website (FOSS) build stays completely purchase-free and Google-free — palettes and larger pads are simply unlocked there.
1.0.3

Replies & leaner group chats

  • NEW: Swipe to reply — swipe any message to quote it, with the original shown above your response so threads stay easy to follow.
  • Group chats now derive their keystream on demand instead of storing a full pad on disk — the same security, a much smaller footprint, and room for bigger groups.
  • One-on-one chats now retire spent sections of their pad as you go, so used-up key material doesn't linger on the device.
1.0.2

Wilting messages

  • NEW: Wilting messages — send text that quietly disappears. Hold the send button to choose how long it lives (1–60 seconds); it wilts away shortly after the other person opens it. The countdown even survives closing the app.
  • NEW: Wilting photos — the same disappearing option for images, right in the send dialog.
  • Screenshot requests now leave a record: when someone asks to capture the chat, you get an in-conversation Accept / Decline that expires on its own — so you'll see it even if you were offline when they asked.
1.0.1

Photos, reactions & privacy hardening

  • NEW: Photo sharing with a tap-to-zoom viewer — pan and zoom any image full-screen. Senders can optionally allow saving, and you choose the file format when you download.
  • NEW: In-app camera — snap and send a photo without leaving the chat.
  • NEW: Message reactions — react to any message with an emoji, including your own custom ones.
  • NEW: Consensual screenshots — capture a chat only when the other side agrees (one-on-one, or a group majority), without ever weakening the screenshot block.
  • Richer pixel-art emojis — the editor now supports up to 256 colours and new palettes.
  • Extra privacy hardening: the screenshot & screen-recording block is back on, plus new protection against tap-hijacking overlays and a heads-up if an untrusted accessibility service is watching the screen.
  • Fixed the pre-send image size estimate, which used to wildly over-report how large a photo would be.
1.0.0+9

Voice messages & push notifications

  • NEW: Voice messages — hold the mic to record, and tap it first to pick the quality, from crisp all the way down to charmingly crunchy lo-fi. Each theme even plays them back with its own style.
  • NEW: Optional real-time push on the Play Store build — get notified the instant a message arrives without keeping a constant background connection. The wake-up is content-free: no message data ever passes through Google. The GitHub/website build stays 100% Google-free and uses its own on-device methods.
  • NEW: When a message arrives while you're using the app but not in that chat, a tappable banner now slides in — so you won't miss messages across busy conversations.
  • Fixed a loading spinner that could get stuck on the dashboard after finishing onboarding.
  • Tapping a message notification now reliably opens the right chat, and the alert clears once you've seen it instead of lingering.
1.0.0+7

Notifications, security & onboarding

  • Smarter battery-saver notifications: checks quickly right after you close the app, eases off to save battery while it stays quiet, and speeds back up the moment a message arrives.
  • Instant mode is now more resilient — if Android or your phone's battery manager stops the background connection, the app automatically falls back to catching messages so your alerts keep coming through.
  • New setup step explains how alerts work — Wiltkey never uses Google or Apple push, so you choose up front whether to be notified in the background.
  • Settings now have a dedicated Security tab for your fingerprint unlock, PIN, and identity reset, keeping the Profile tab just for customization.
  • Changing your PIN is now a clear two-step screen, fixing the confirm field overlapping the button on smaller phones.
1.0.0+6

Pairing, editor & input fixes

  • Pair screens now warn you (with a one-tap toggle) when Bluetooth is off, instead of silently hanging — fixes group creation freezing with Bluetooth disabled.
  • Smoother custom-emoji background erasing — strokes now follow your finger live instead of lagging, and the editor controls no longer overflow on small screens.
  • Fixed the send button disappearing in group chats when typing very long messages.
1.0.0+5

Stickers & delivery sync

  • NEW: Stickers — hold down any emoji (including your custom ones) to send it big and on its own.
  • Delivery status now catches up when you reopen the app, even without unlocking — fixes confirmations that could stay stuck after the app was minimized.
1.0.0+4

Messaging reliability & QOL

  • NEW: Updated custom emoji editor: erase to transparent, rotate your image, and undo steps while creating emojis.
  • Fixed messages getting stuck on a single "sent" check — delivery status now reconciles reliably, even if the app was closed when the message arrived.
  • Messages no longer go missing after reopening the app. Added a sync button in the chat header to manually pull anything you might be missing.
  • The chat now scrolls with the keyboard, so the latest message stays visible while you type.
  • Back button / gesture now closes the emoji picker first instead of leaving the chat.
  • Smoother PIN entry during setup — keyboard "enter" jumps between fields and submits.
1.0.0+3

QOL & Bugfixes

  • Navigation buttons now don't block the chat input anymore.
  • Fixed a chat disappearing from a device after a one-sided nuke signal and re-pairing.
  • Added a restart button on the pairing screen for a quick wipe.
  • Temporarily removed the screenshot block functionality for testing.
  • Added a copy debug button to help with bug reports.
  • Added a warning on the pairing sync screen to not close the app.
1.0.0

Initial release

First build of Wiltkey released.

Server — Blind Relay

2026-07

Bigger files, tiered storage & Plus

  • Large messages now stream through object storage with a database-backed link instead of sitting in memory, and the relay falls back to the database under memory pressure — so bigger transfers and busy queues don't strain a host. It still holds only encrypted payloads and deletes them on delivery.
  • WiltKey Plus, server-enforced: a subscriber's offline messages are held 72 hours (vs 24), and their transfer ceiling rises from 5 MB to 50 MB. Entitlement is verified relay-side; a payload over the 50 MB hard cap is refused outright.
  • Self-hosters stay Google-free: with no entitlement store configured, everything simply holds 24 hours and the subscription checks are no-ops — the relay behaves exactly as before.
2026-07-04

Push wake-up endpoint

  • Added an optional wake-up path for the Play Store build: the relay can send a content-free push when a message is waiting for an offline device, so the app is notified without holding a background connection.
  • The relay stores only a device wake-up token (in Redis, auto-expiring) — never message content. The encrypted payload stays queued and is pulled by the client on its next connection, exactly as before.
  • Entirely opt-in for self-hosters: the sender is a no-op unless Firebase credentials are configured, so a self-hosted or GitHub-build relay behaves identically to before with zero Google dependency and no new libraries.
2026-07-01 ⚠ Critical Security

Relay security hardening

  • Closed a flaw where a malicious client could crash the entire relay or silently disrupt another user's message delivery. The unused legacy code path responsible was removed entirely.
  • Added abuse protections: per-connection flood limits, bounded offline queues (can't be inflated to exhaust memory), and per-sender limits on remote-wipe signals.
  • Restored proper per-IP rate limiting and bans behind the reverse proxy, and hardened the message-post endpoint (single-use vouchers, stronger proof-of-work).
  • No app update needed — these changes are entirely server-side and already live on api.wiltkey.org. Self-hosters should rebuild and redeploy their relay.
Base

Blind relay online

The Go blind relay went live: challenge-response Ed25519 auth, blind message routing, and Redis-backed offline queues that hold only opaque ciphertext and delete it on delivery. Fully self-hostable — see the setup & security guide.