Releases: johalputt/VayuMail-Mobile
Release list
VayuMail 2.2.12
Added
- VayuTalk self-destruct timers + Live mode. Messages now burn on a timer
that starts when they're read, not when they're sent — so a message you
send waits (no countdown) until the other person opens it, then both copies
disappear on the same clock.- Timer options: 5 seconds, 1 minute, 5 minutes, 15 minutes, 30 minutes,
1 hour — default 5 minutes. Tap the timer pill in the composer to cycle
them; each read message shows a countdown ring and remaining time, then
collapses to a tombstone. - Live toggle: a composer pill for messages that are never stored on the
server (delivered only while both of you are online) and burn the moment
they're read. - The burn countdown now runs from read time (reveal for the recipient, the
read receipt for the sender) instead of from send. The local timer clamp
widened to[5s, 1h]to match the relay; the incoming envelope carries the
sender's chosenburn_seconds. Plaintext still lives in memory only.
- Timer options: 5 seconds, 1 minute, 5 minutes, 15 minutes, 30 minutes,
Note
- Requires a VayuPress relay running v3.13.56+ for the read-time burn and
Live semantics. Against an older relay the app still works (the timer behaves
as a send-time lifetime).
Fixed
- Real text renders correctly again — reverted the colour-emoji font. The
bundled Noto Color Emoji font (2.2.10) broke text: this build of Gio does not
rasterise its colour glyphs, and the font also claimed the ASCII digits
(they exist in it for keycap emoji like 1️⃣), so clock times showed as:with
the numbers blank, safety numbers rendered as scattered letters with the digits
gone, and emoji messages showed as empty bubbles. Removing the font restores
correct rendering of all letters, digits, times and safety numbers. Emoji again
fall back to the platform glyphs; a proper emoji solution needs a monochrome
(outline) font this build of Gio can actually draw — tracked as a follow-up.
Changed
- Verify screen: safety numbers now render as a clean, aligned grid. Each
four-character group sits in its own equal-width, centered cell (five per row),
so the columns line up neatly instead of flowing as a ragged proportional
string — matching the tidy layout of the web console.
Downloads
- vayumail-2.2.12.apk — install directly on your
Android device (sideload). - vayumail-2.2.12.aab — upload to the Google Play
Console (Play requires an App Bundle, not an APK).
Signed with the release key. Test-key builds are for
sideloading only; set ANDROID_KEYSTORE_B64 /
ANDROID_KEYSTORE_PASS repository secrets to produce Play
Store-ready builds signed with your upload key.
VayuMail 2.2.11
Fixed
- Real text renders correctly again — reverted the colour-emoji font. The
bundled Noto Color Emoji font (2.2.10) broke text: this build of Gio does not
rasterise its colour glyphs, and the font also claimed the ASCII digits
(they exist in it for keycap emoji like 1️⃣), so clock times showed as:with
the numbers blank, safety numbers rendered as scattered letters with the digits
gone, and emoji messages showed as empty bubbles. Removing the font restores
correct rendering of all letters, digits, times and safety numbers. Emoji again
fall back to the platform glyphs; a proper emoji solution needs a monochrome
(outline) font this build of Gio can actually draw — tracked as a follow-up.
Changed
- Verify screen: safety numbers now render as a clean, aligned grid. Each
four-character group sits in its own equal-width, centered cell (five per row),
so the columns line up neatly instead of flowing as a ragged proportional
string — matching the tidy layout of the web console.
Downloads
- vayumail-2.2.11.apk — install directly on your
Android device (sideload). - vayumail-2.2.11.aab — upload to the Google Play
Console (Play requires an App Bundle, not an APK).
Signed with the release key. Test-key builds are for
sideloading only; set ANDROID_KEYSTORE_B64 /
ANDROID_KEYSTORE_PASS repository secrets to produce Play
Store-ready builds signed with your upload key.
VayuMail 2.2.10
Added
- Emoji now render. The app bundles the Noto Color Emoji font (via Gio's
official emoji font module) and adds it as a fallback in the text shaper, so
emoji show as glyphs instead of empty □ boxes — in chat and everywhere else.
Ordinary text still uses the platform's native system font; the emoji font is an
additive fallback that Gio uses only for codepoints the system font lacks. Adds
~10 MB to the app download (color-emoji fonts embed bitmaps) — the price of real
emoji in a pure-Go UI. Pinned by a shaping test so a regression fails CI.
Downloads
- vayumail-2.2.10.apk — install directly on your
Android device (sideload). - vayumail-2.2.10.aab — upload to the Google Play
Console (Play requires an App Bundle, not an APK).
Signed with the release key. Test-key builds are for
sideloading only; set ANDROID_KEYSTORE_B64 /
ANDROID_KEYSTORE_PASS repository secrets to produce Play
Store-ready builds signed with your upload key.
VayuMail 2.2.9
Fixed
- Chat is now two-sided: your messages sit on the right, theirs on the left.
Sent and received bubbles were both hugging the left edge. The cause was a
layout bug — the flexible spacer that pushes a sent bubble to the right returned
a zero-size box, and Gio advances by a child's returned size, so the spacer
collapsed and the bubble fell back to the left. The spacer now fills its
allocated width, so the thread reads like a normal chat. (Also fixes the
outgoing status — “Sending…/Sent/Queued/Read” — aligning to the far edge of the
bubble.)
Known limitation
- Emoji still render as empty boxes on the phone. This is a limitation of the
pure-Go UI toolkit (Gio), which does not use Android's colour-emoji font; the
message text itself transmits and decrypts correctly (the web shows the emoji).
A bundled emoji font is planned. Plain text and all message delivery are
unaffected.
Downloads
- vayumail-2.2.9.apk — install directly on your
Android device (sideload). - vayumail-2.2.9.aab — upload to the Google Play
Console (Play requires an App Bundle, not an APK).
Signed with the release key. Test-key builds are for
sideloading only; set ANDROID_KEYSTORE_B64 /
ANDROID_KEYSTORE_PASS repository secrets to produce Play
Store-ready builds signed with your upload key.
VayuMail 2.2.8
Fixed
- Talk-subdomain discovery no longer depends on a CDN-fronted fetch. The app
learned its proxy-offtalk.<domain>relay from the main domain's autoconfig —
but that fetch can itself be bot-challenged by the very CDN the subdomain exists
to bypass, which made discovery circular. The app now also probes the
conventionaltalk.<domain>directly (a proxy-off host, so it reaches the origin
even when autoconfig can't be read), and uses it once it answers as a live
relay. Still trust-constrained to the mail domain and still falls back to the
mail domain when no live relay is found, so nothing regresses for servers
without a talk subdomain.
Downloads
- vayumail-2.2.8.apk — install directly on your
Android device (sideload). - vayumail-2.2.8.aab — upload to the Google Play
Console (Play requires an App Bundle, not an APK).
Signed with the release key. Test-key builds are for
sideloading only; set ANDROID_KEYSTORE_B64 /
ANDROID_KEYSTORE_PASS repository secrets to produce Play
Store-ready builds signed with your upload key.
VayuMail 2.2.7
Added
- Chat automatically uses your server's proxy-off
talk.<domain>relay when it
exists. If a CDN (e.g. Cloudflare) sits in front of your server, its bot
challenge blocks the app's long-lived chat stream — so the app could send but
never receive. When VayuPress advertises a dedicatedtalk.subdomain (set up
automatically once you point its DNS), the app now discovers it, confirms it is
within your mail domain and answering as a live relay, and routes its chat
stream there — bypassing the CDN with no setting to change. If none is
advertised (or it isn't reachable), the app keeps using the mail domain exactly
as before, so nothing changes for servers without a talk subdomain.
Notes
- Pairs with VayuPress 3.11.48, which provisions the
talk.<domain>vhost + TLS
cert and advertises the host on its own. See that release's notes: your only
step is one DNS record.
Downloads
- vayumail-2.2.7.apk — install directly on your
Android device (sideload). - vayumail-2.2.7.aab — upload to the Google Play
Console (Play requires an App Bundle, not an APK).
Signed with the release key. Test-key builds are for
sideloading only; set ANDROID_KEYSTORE_B64 /
ANDROID_KEYSTORE_PASS repository secrets to produce Play
Store-ready builds signed with your upload key.
VayuMail 2.2.6
Added
- Verify screen now shows BOTH safety numbers — yours and your contact's.
Previously it showed only the contact's number, so there was nothing to read
back to them. It now displays "You" (your own key) above the contact's, exactly
like the web console, so the two of you can compare both numbers over a trusted
channel and confirm no one is in the middle. Your own number appears as soon as
your key has synced.
Notes
- Pairs with VayuPress 3.11.47, which stops the web console from consuming
messages out of a shared mailbox's queue before this app can receive them (the
cause of "an app-to-app message only shows up in the web"). Update the server
too, and confirm it is running the new build with
curl -s https://YOUR-DOMAIN/health→"version":"3.11.47".
Downloads
- vayumail-2.2.6.apk — install directly on your
Android device (sideload). - vayumail-2.2.6.aab — upload to the Google Play
Console (Play requires an App Bundle, not an APK).
Signed with the release key. Test-key builds are for
sideloading only; set ANDROID_KEYSTORE_B64 /
ANDROID_KEYSTORE_PASS repository secrets to produce Play
Store-ready builds signed with your upload key.
VayuMail 2.2.5
Fixed
- Faster recovery when a key re-sync briefly fails. The self-heal that
re-fetches your key on a decrypt failure now waits only a few seconds before
retrying after a failed fetch (instead of the full 30-second cooldown used
after a successful one), so a momentary network/server blip no longer delays a
web-sent message — while a persistent failure still can't hammer the server.
Downloads
- vayumail-2.2.5.apk — install directly on your
Android device (sideload). - vayumail-2.2.5.aab — upload to the Google Play
Console (Play requires an App Bundle, not an APK).
Signed with the release key. Test-key builds are for
sideloading only; set ANDROID_KEYSTORE_B64 /
ANDROID_KEYSTORE_PASS repository secrets to produce Play
Store-ready builds signed with your upload key.
VayuMail 2.2.4
Fixed
- Messages sent from the web now reliably decrypt on the phone. If an
incoming message can't be opened — because this device's key had drifted from
the one the server encrypted to — the app now automatically re-fetches its
authoritative key from the server and retries, instead of silently dropping the
message. This self-heals a stale key without any manual "sync" step. The
re-fetch is rate-limited so a burst of unreadable messages can't hammer the
server. (TestHandleEnvelopeResyncsOnDecryptFailure.)
Added
- Automated Google Play publishing. The release workflow now uploads the
signed AAB to Google Play on every release (gated on a service-account secret;
a no-op until configured). Once set up, a GitHub release becomes a Play release
with no manual step, and Play updates the app on every device automatically —
no sideloading. One-time setup is documented indocs/PLAY-PUBLISHING.md.
Downloads
- vayumail-2.2.4.apk — install directly on your
Android device (sideload). - vayumail-2.2.4.aab — upload to the Google Play
Console (Play requires an App Bundle, not an APK).
Signed with the release key. Test-key builds are for
sideloading only; set ANDROID_KEYSTORE_B64 /
ANDROID_KEYSTORE_PASS repository secrets to produce Play
Store-ready builds signed with your upload key.
VayuMail 2.2.3
Added
- Message clock time. Each chat bubble now shows the wall-clock time it was
sent (the server's send time, in your local zone), matching what the web
shows for the same message — alongside the existing disappear-countdown.
Fixed
- Incoming messages show when they were sent, not when the phone received
them. A message that waited in the queue while you were offline now displays
its real send time (from the server), instead of the moment it arrived.
Downloads
- vayumail-2.2.3.apk — install directly on your
Android device (sideload). - vayumail-2.2.3.aab — upload to the Google Play
Console (Play requires an App Bundle, not an APK).
Signed with the release key. Test-key builds are for
sideloading only; set ANDROID_KEYSTORE_B64 /
ANDROID_KEYSTORE_PASS repository secrets to produce Play
Store-ready builds signed with your upload key.