What's new
Every release of the apps and the relay, newest first. Written for people using Flamenet Messenger; the parts that only matter if you run your own relay are at the bottom of each release.
2026-09-15
android 0.24
A call keeps talking when the screen locks, and a picture to another server no longer closes the app.
- Fixed, Locking the phone during a call, or switching to another app, let the person you were talking to hear silence while both screens still said the call was up. Android stops an app using the microphone in the background unless the app says it is on a call, and this one did not say so. It does now, for as long as the call lasts.
- Fixed, Sending a picture to somebody on another server closed the app. A conversation with somebody on another server is addressed differently, and the picture path asked for an address it does not have. Sending a file or a sticker there did nothing at all, which is the same fault with less honesty. All three now say that only text reaches another server for now.
- Fixed, If the people who run your server suspend your account, the app tells you so in their words. It used to show the same message it shows for a network problem, which reads like a broken install and sends you reinstalling for nothing.
- Changed, The version number jumps from 0.22 to 0.24. Android carries two numbers, the one you see and one underneath that decides whether an install counts as an upgrade, and they had been one apart since an unpublished build in the 0.11 days. They are the same number now and will stay that way, so the number on the download page is the number in your app.
2026-09-15
iPhone beta 0.23.0
The first call rings a locked phone, and a call keeps talking when the screen locks.
- Fixed, The first call to a phone that was not already running never reached the lock screen; the second one did. Two pieces of work that had to happen the moment the call arrived were queued behind the app's own launch instead. They run inline now. A simulator cannot receive the push that starts this, so the proof is a locked phone that rings.
- Fixed, Locking the phone, or switching apps, during a call let the far end hear silence while both screens said the call was up. The app now keeps its audio running in the background for the length of the call.
- Changed, App Diagnostics, under Account. iOS records a report when the app crashes or freezes, and the app keeps the last few on the phone so there is something to send if you ever want to. Nothing is uploaded, not behind a setting and not on a timer. Sending one is something you do.
- Changed, Privacy Policy and Terms of Use, under Account. They open the pages the server you are signed in to serves, so on somebody else's server you read their policy, not ours.
- Changed, Two dozen slash commands from when the messenger lived inside a website, /search, /video, /forum and the rest, are gone. They called routes the server never had and answered with an error after a round trip. Status, presence, buddies, blocking, whois, star and archive stay.
- Changed, If the people who run your server suspend your account, the app now shows you their sentence saying so, rather than a generic refusal that reads like a broken install.
2026-09-14
relay
A report reaches a person.
- Fixed, Reporting something wrote a row to the server's database and did nothing else. No mail, no alert, and nothing anybody could read the table back with, while the safety page had been saying for months that a report goes to the people who run this server. It went to their disk. It now reaches them. If mail happens to be down the report is still filed, because turning away a report because a mail server is unwell would lose the one copy of something somebody went out of their way to send.
- Changed, A report can carry a copy of what is being reported, which makes it the most sensitive thing this server holds, and it was the only thing here with no expiry at all. Reports are now deleted after a year.
- Changed, The server keeps a note of what became of each attempt to ring a phone, so that a phone nobody can ring is something the people running it can see rather than something you have to report. It records that an attempt was made and what the push service said, against an envelope whose recipient and time are already stored, and it is deleted after seven days.
If you run your own relay
- FN_REPORTS_TO is the address reports are mailed to. With nothing set, the relay logs that a report was filed with nowhere to send it instead of filing in silence, which is the state every deployment has been in until now. Scripts/reports.sh reads the table back and leads with accounts more than one person has reported.
- If you run this relay on SQLite, take this build. The TuneUserDataAutovacuum migration checked that the database was SQL rather than that it was Postgres, so it passed on SQLite and then fed it a DO block, which SQLite has no such statement for. A migration that throws takes the process down at boot. Every SQLite-backed node in our own fleet crash-looped for forty minutes while the Postgres node beside them stayed healthy and the deploy gate read that one node and reported the fleet fine. The guard is now the dialect, on both prepare and revert.
- ring_events is a new table: one row per attempt to ring a phone, holding the outcome only. Swept after seven days. Scripts/call-health.sh reads it back alongside how long a rung phone took to collect the call, which is the number that tells a slow client from a silent one.
- FN_REPORT_RETENTION_DAYS defaults to 365. Ring events are fixed at seven days and are not configurable.
- The monitoring script warns at 80 per cent on open file descriptors, Postgres connections, TURN relay ports and disk. It previously reported only whether things were alive, which says nothing until the moment they are not.
2026-09-14
android 0.22
The same build as 0.21, under the number this page and the app both show.
- Changed, Nothing here behaves differently from 0.21. This release exists so that the version on this page, the version the app shows you and the file you download are all the same number. If you are already on 0.21 there is nothing you need to do.
2026-09-14
android 0.21
An answer no longer waits twenty seconds to arrive.
- Fixed, Calling an iPhone took far longer than it should. While the app is on screen it does its own collecting, and it was still asking the server to hold each request open for twenty seconds, including during a call. So the other person answered, their answer sat on the server, and this end did not ask for it until the hold ran out. Measured against a real pair of phones: this app took an average of 112 seconds to collect what was waiting for it, where an iPhone took 5. During a call it now asks once a second and takes whatever is there.
- Changed, The version you see here and the version the app shows now match. The number underneath, which only decides which build is newer, had run ahead of the name.