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.