2025-10-21 - 2026-10-21

Overview

163 Active Pull Requests
27 Active Issues
Excluding merges, 2 authors have pushed 224 commits to main and 579 commits to all branches. On main, 239 files have changed and there have been 50977 additions and 3974 deletions.

2 Releases published by 1 user

Published v0.31 2026-09-28 11:24:12 +00:00

Published v0.30 2026-09-26 17:07:50 +00:00

163 Pull requests merged by 1 user

Merged #192 On-device tests for the app over an obfs4 bridge, and what they found 2026-10-14 22:27:21 +00:00

Merged #191 Android 0.32: merge the release branch into main, and move CI to Gitea Actions 2026-10-14 15:12:41 +00:00

Merged #190 Bridge sharing (friend to friend) and Spanish (draft, needs native review) 2026-10-10 15:08:38 +00:00

Merged #189 FlameNet Messenger 0.32 (Android): padding, pairs 2-B, multi-device, sealed first contact, Unlisted and contact links 2026-10-09 19:40:02 +00:00

Merged #188 Another account on the same install starts empty; two vault writes no longer crash 2026-10-09 19:30:36 +00:00

Merged #187 Cross-platform fixes: reactions, edits, reply quotes, polls, blocking, lost sends 2026-10-09 12:14:24 +00:00

Merged #185 Point links at the extant2000 GitLab group 2026-09-28 19:08:32 +00:00

Merged #184 The echo peer outlives a failed call instead of exiting 2026-09-28 14:16:31 +00:00

Merged #182 On-device suite green: sign-up tap, fresh peers, group id, and the chat scroll crash 2026-09-28 13:19:30 +00:00

Merged #183 Version 0.31, build 31 2026-09-28 11:24:01 +00:00

Merged #181 F2 and F5 on Android: say an unsealed send and a changed address at the time 2026-09-26 18:45:36 +00:00

Merged #180 Android 0.30, code 30 2026-09-26 17:04:13 +00:00

Merged #179 Stretch the parental PIN, and keep app data off new phones 2026-09-26 16:52:00 +00:00

Merged #178 Take the e2e poll vectors and check them in CI 2026-09-25 12:35:25 +00:00

Merged #177 F6: a relay that answers and will not prove consistency is a fork 2026-09-24 18:02:56 +00:00

Merged #176 An unproven key replacement says so 2026-09-22 19:20:50 +00:00

Merged #175 An inclusion proof that reconstructs nothing is refused 2026-09-22 15:40:35 +00:00

Merged #174 Verify the Gradle distribution before running it 2026-09-22 15:05:40 +00:00

Merged #173 Remove the dead composables and the unread stat 2026-09-22 14:49:44 +00:00

Merged #172 No em dash in the PQSign header, and say what 0.29 closes 2026-09-22 14:23:23 +00:00

Merged #171 Keep off-the-record drafts out of the vault 2026-09-22 12:26:38 +00:00

Merged #170 Keep off-the-record messages out of the outbox on disk 2026-09-22 11:53:30 +00:00

Merged #169 Keep off-the-record unread marks out of the vault 2026-09-22 11:44:44 +00:00

Merged #168 Tell the account service when an account is deleted 2026-09-21 23:55:49 +00:00

Merged #167 Take the e2e spec update 2026-09-12 20:19:28 +00:00

Merged #166 A poll shows the moment the group opens 2026-09-12 16:40:14 +00:00

Merged #165 Android 0.18 2026-09-12 16:20:50 +00:00

Merged #164 Hand a call to another of your devices 2026-09-12 16:05:05 +00:00

Merged #163 Polls where nobody can tell who voted for what 2026-09-12 15:49:03 +00:00

Merged #162 A call that is over never rings again 2026-09-12 13:31:43 +00:00

Merged #161 The ring stops when the caller hangs up 2026-09-12 13:07:50 +00:00

Merged #160 Version 0.17 2026-09-12 12:09:15 +00:00

Merged #159 Anonymous polls: the envelopes 2026-09-12 02:23:08 +00:00

Merged #158 Anonymous polls: the arithmetic 2026-09-12 02:18:35 +00:00

Merged #157 Off-the-record conversations: the control 2026-09-12 01:45:04 +00:00

Merged #156 Off-the-record conversations: the mechanism 2026-09-12 01:40:26 +00:00

Merged #155 Say which side of a private reaction you are on 2026-09-12 01:19:57 +00:00

Merged #154 Reactions during a call 2026-09-12 01:11:13 +00:00

Merged #153 Private reactions: react to one person inside a group 2026-09-12 01:08:44 +00:00

Merged #152 Stop the ring on this account's other devices when one answers 2026-09-11 16:53:56 +00:00

Merged #151 Clear the app before every on-device run, as !122 said it did 2026-09-11 16:21:46 +00:00

Merged #150 A second device's ring no longer hangs up a call answered on the first 2026-09-11 16:20:59 +00:00

Merged #148 Keep build output out of Spotlight 2026-09-11 14:12:15 +00:00

Merged #149 The on-device sign-up suite runs again, and the bug it found is fixed 2026-09-11 14:12:14 +00:00

Merged #147 Check the content envelope against envelopes the iPhone emitted 2026-09-11 11:51:29 +00:00

Merged #146 Android 0.16, versionCode 18 2026-09-11 00:41:24 +00:00

Merged #145 Check the backup payload against the published vector 2026-09-10 23:50:48 +00:00

Merged #144 A file in a chat keeps its name and its label 2026-09-10 23:43:17 +00:00

Merged #143 Android writes and reads the shared backup format 2026-09-10 22:15:25 +00:00

Merged #142 Android 0.15, versionCode 17 2026-09-10 21:41:58 +00:00

Merged #141 Accept answers the call, and a call that ended goes away 2026-09-10 19:08:01 +00:00

Merged #140 A ring that ends, and only one thing reading the inbox 2026-09-10 16:58:18 +00:00

Merged #139 Android 0.14, versionCode 16 2026-09-10 13:58:59 +00:00

Merged #138 Keep the token when only the proof was spent, and review keys at the call 2026-09-10 13:54:18 +00:00

Merged #137 Android 0.13, versionCode 15 2026-09-10 13:24:39 +00:00

Merged #136 Ask the relay to hold a poll open 2026-09-10 12:45:00 +00:00

Merged #134 Areas can be chosen, and named 2026-09-10 11:57:03 +00:00

Merged #133 Android 0.12, versionCode 14 2026-09-09 22:45:35 +00:00

Merged #132 Encrypted backups in Kotlin, against the published vectors 2026-09-09 22:10:47 +00:00

Merged #131 The instrumented suites can get past sign-up again 2026-09-09 21:13:12 +00:00

Merged #130 Link the site from the README 2026-09-09 20:59:35 +00:00

Merged #129 The level picker explains itself, as it does on iOS 2026-09-09 19:51:21 +00:00

Merged #128 docs: drop dated self-corrections 2026-09-09 13:40:34 +00:00

Merged #127 An Android call must ring a locked iPhone 2026-09-09 13:39:30 +00:00

Merged #126 A call blocked by a key change offers the review 2026-09-09 13:38:26 +00:00

Merged #125 Put the parity table back 2026-09-09 02:13:17 +00:00

Merged #124 Read like a codebase 2026-09-09 00:28:33 +00:00

Merged #123 Photos must not turn on their side; the keyboard must not cover the chat 2026-09-09 00:09:32 +00:00

Merged #122 Say why delivery failed, instead of only logging it (ios#21, #22, #23) 2026-09-08 18:30:02 +00:00

Merged #121 Revert the purple/dark theme, back to the pre-purple palette 2026-09-08 17:36:19 +00:00

Merged #120 Publish as 0.11, with the code still climbing 2026-09-08 00:17:35 +00:00

Merged #119 Android 0.12 2026-09-07 22:32:50 +00:00

Merged #118 Read the contact's address from the directory, and name the refusals 2026-09-07 21:48:31 +00:00

Merged #117 Compose a reply (android#16) 2026-09-07 21:35:57 +00:00

Merged #116 Files and Wallet are bar destinations, like iOS 2026-09-07 19:41:31 +00:00

Merged #115 The launcher icon is the product's mark 2026-09-07 13:34:32 +00:00

Merged #114 Report a story on Android, which had no way to 2026-09-07 01:56:07 +00:00

Merged #113 Display settings, and one gap that is a missing feature rather than a toggle 2026-09-07 01:56:04 +00:00

Merged #112 Notification settings, which Android never had 2026-09-07 01:14:44 +00:00

Merged #111 Give sharing a bridge a way in 2026-09-07 00:51:17 +00:00

Merged #110 Hand a contact the bridge you use (§6.19) 2026-09-06 23:59:34 +00:00

Merged #109 Android 0.11 2026-09-06 23:10:18 +00:00

Merged #108 Pair the e2e pin with a loud advisory at HEAD 2026-09-06 21:37:15 +00:00

Merged #107 Pin the vector clone, rather than reddening on someone else's merge 2026-09-06 19:57:43 +00:00

Merged #106 CI never ran the obfs4 suite, and replayed the others from a local cache 2026-09-06 19:21:48 +00:00

Merged #105 A settings screen for the bridge line, and a path for it to reach 2026-09-06 19:13:21 +00:00

Merged #104 obfs4 for Android, part 1: Elligator2 2026-09-06 18:09:37 +00:00

Merged #103 The on-device suite catches up with the app 2026-09-06 18:09:17 +00:00

Merged #102 "Checking what this server uses…" was also the failure state 2026-09-05 22:25:12 +00:00

Merged #101 Report a message, not just a story 2026-09-05 18:35:12 +00:00

Merged #100 Android 0.10 — published 2026-09-05 18:35:05 +00:00

Merged #99 Sign-in that cannot finish now says so, and a missing log leaf heals 2026-09-05 18:10:47 +00:00

Merged #98 Android 0.9 — published 2026-09-05 16:05:36 +00:00

Merged #97 An APK no longer ships without a word about what changed in it 2026-09-05 15:56:55 +00:00

Merged #96 Files asks for your Flamenet passphrase, not a second secret 2026-09-05 14:44:04 +00:00

Merged #95 Say when a call was refused because the key changed (android#20) 2026-09-05 14:43:08 +00:00

Merged #94 Expose the security lattice to the interop driver (relay#49) 2026-09-05 10:40:23 +00:00

Merged #93 Kotlin content interop commands (e2e#4) 2026-09-05 10:08:13 +00:00

Merged #92 "Unsend" did not unsend (android#18) 2026-09-05 02:19:00 +00:00

Merged #91 Prove a group pin resolves (relay#46) 2026-09-05 00:42:43 +00:00

Merged #90 PARITY: post-quantum is shipped on both clients 2026-09-05 00:30:07 +00:00

Merged #89 Fix: ./gradlew test now passes on a clean tree (android#5) 2026-09-04 23:18:13 +00:00

Merged #88 Prove an inbound edit is applied (relay#46) 2026-09-04 22:36:28 +00:00

Merged #87 Expired messages no longer leave their plaintext on disk (android#11) 2026-09-04 22:29:56 +00:00

Merged #86 PARITY: the file round trip is proven live 2026-09-04 20:55:48 +00:00

Merged #84 PARITY: history at rest was already built — the third stale row 2026-09-04 20:50:22 +00:00

Merged #85 A live test for the file round trip, and four published passwords 2026-09-04 20:50:19 +00:00

Merged #81 Fix: the vault index failed to load on a real phone 2026-09-04 20:50:13 +00:00

Merged #82 Fix: a contact with no address was pinned as the string "null" 2026-09-04 20:50:13 +00:00

Merged #80 Share a file into a chat, and save one back — with the label it carries 2026-09-04 20:50:12 +00:00

Merged #83 Fix: promoting a link to the vault appeared to do nothing 2026-09-04 20:50:12 +00:00

Merged #79 Files on Android: set up, unlock, browse, add, folders, delete, promote 2026-09-04 20:49:59 +00:00

Merged #78 The local Files vault in Kotlin 2026-09-04 20:49:56 +00:00

Merged #77 The Files vault crypto in Kotlin, pinned to the browser's vectors 2026-09-04 20:49:53 +00:00

Merged #75 The wallet screen (Android) 2026-09-04 20:49:50 +00:00

Merged #76 The Files security lattice in Kotlin (labels, clearance) 2026-09-04 20:49:49 +00:00

Merged #74 Read a balance and a transaction history from a chain node (Android) 2026-09-04 20:49:43 +00:00

Merged #73 Create, import and store a wallet (Android engine) 2026-09-04 20:49:40 +00:00

Merged #72 Derive wallet addresses and sign with them (Android) 2026-09-04 20:49:36 +00:00

Merged #69 Edit, forward and pin from the conversation (§6.15/§6.16/§6.19) 2026-09-04 20:49:33 +00:00

Merged #71 Wallet engine primitives in Kotlin: BIP-39, Base58, SLIP-0010 2026-09-04 20:49:33 +00:00

Merged #70 Refuse a home record older than one already seen (§20.4, Android half) 2026-09-04 20:49:33 +00:00

Merged #67 Pin the relay's identity, not just its TLS (ios#19, Android half) 2026-09-04 20:49:24 +00:00

Merged #68 Apply inbound edits and pins instead of filing them as messages 2026-09-04 20:49:23 +00:00

Merged #66 Zero key material after use (ios#39, Android half) 2026-09-04 20:49:23 +00:00

Merged #65 Handle a wrong clock (ios#45, Android half) 2026-09-04 20:49:13 +00:00

Merged #64 Back off on repeated app-lock attempts (ios#41, Android half) 2026-09-04 20:49:09 +00:00

Merged #62 Understand a file somebody sent 2026-09-04 20:49:06 +00:00

Merged #61 Make the instrumented tests capable of failing 2026-09-04 20:49:05 +00:00

Merged #63 A test run must not publish a credential (ios#62, Android half) 2026-09-04 20:49:04 +00:00

Merged #60 Put the app back to the last state that worked 2026-09-02 23:03:41 +00:00

Merged #59 A 403 is not an expired session 2026-09-02 22:37:24 +00:00

Merged #56 Count the sealed-to-unsealed fallback, and offer to refuse it 2026-09-02 21:57:16 +00:00

Merged #55 Report or block from a story 2026-09-02 21:55:45 +00:00

Merged #54 Post a story to a group 2026-09-02 21:54:01 +00:00

Merged #51 React to a story with one tap 2026-09-02 21:53:11 +00:00

Merged #53 Post several pictures as one story sequence 2026-09-02 21:48:29 +00:00

Merged #52 Keep your own stories in a private archive 2026-09-02 21:47:57 +00:00

Merged #48 Reply to a story, as a sealed direct message 2026-09-02 21:47:01 +00:00

Merged #50 Save a story you posted yourself, before it expires 2026-09-02 21:44:35 +00:00

Merged #49 Post a story that is only words, or a link 2026-09-02 21:43:56 +00:00

Merged #46 Recognise a pinned message (§6.19) 2026-09-02 20:07:00 +00:00

Merged #43 Search inside messages, across every conversation 2026-09-02 20:03:44 +00:00

Merged #42 A timer on one message, not just the conversation (§6.17) 2026-09-02 19:59:51 +00:00

Merged #45 Recognise mentions in a group message (§6.18) 2026-09-02 19:56:40 +00:00

Merged #57 Tell somebody when their disappearing message is screenshotted 2026-09-02 19:52:15 +00:00

Merged #44 The transcript records a message id and a reply reference 2026-09-02 19:50:47 +00:00

Merged #41 Recognise a forwarded message (§6.16) 2026-09-02 19:50:32 +00:00

Merged #40 Keep a half-written message across a relaunch 2026-09-02 19:50:15 +00:00

Merged #58 A skipped live sign-up must report skipped, not passed 2026-09-02 19:48:26 +00:00

Merged #47 Mute one contact's stories, without blocking them 2026-09-02 19:48:09 +00:00

Merged #39 Recognise an edit envelope so it is not drawn as a duplicate (§6.15) 2026-09-02 19:47:52 +00:00

Merged #38 Solve the sign-up puzzle when a relay asks for one 2026-09-02 19:47:36 +00:00

Merged #37 Tell somebody their address needs confirming, and let them do it 2026-09-02 19:47:20 +00:00

Merged #36 Read the relay's refusal code, not just the HTTP status 2026-09-02 19:47:05 +00:00

Merged #35 Android 0.8 — sign-in identity, v3 responder, media scrubbing 2026-09-01 22:09:24 +00:00

Merged #34 Release 0.7 — group member lists leave the server 2026-08-31 21:13:56 +00:00

Merged #33 A live suite cannot be pointed at production any more 2026-08-31 18:47:50 +00:00

Merged #32 Eighteen tests reported PASSED while running nothing 2026-08-31 17:56:04 +00:00

Merged #31 A v2 peer was being sent a post-quantum ratchet step, and v3 was never advertised 2026-08-31 17:01:59 +00:00

Merged #30 The app never actually created a sealed group 2026-08-31 15:24:59 +00:00

Merged #29 Carry post-quantum through every ratchet step, not just the handshake 2026-08-31 15:18:48 +00:00

Merged #28 Sealed group membership changes, and secrets that survive a reinstall 2026-08-31 15:12:31 +00:00

20 Issues closed from 1 user

Closed #27 Off-the-record conversations, never written to disk 2026-09-12 01:45:04 +00:00

Closed #25 Reactions during a call 2026-09-12 01:11:14 +00:00

Closed #24 Private reactions: react to one person inside a group 2026-09-12 01:08:44 +00:00

Closed #22 Creating a second account after signing out is refused with "Your session expired" 2026-09-11 14:12:16 +00:00

Closed #16 Compose a reply — the transcript can resolve one now, the UI cannot start one 2026-09-07 21:35:59 +00:00

Closed #17 A photo sent as a file keeps its GPS; sent as a photo it does not 2026-09-07 19:41:54 +00:00

Closed #20 Report a message, not just a story 2026-09-07 19:05:18 +00:00

Closed #12 Report a conversation, not only a story 2026-09-07 19:05:17 +00:00

Closed #6 A failed key-log append is permanent: restore never re-registers 2026-09-05 19:40:09 +00:00

Closed #19 Sign-in shows nothing at all when it cannot complete 2026-09-05 19:40:07 +00:00

Closed #18 "Unsend" only deletes locally, and says otherwise 2026-09-05 10:32:49 +00:00

Closed #5 ./gradlew test fails on a clean tree, and the failures mean nothing 2026-09-04 23:20:16 +00:00

Closed #8 React to a specific message — engine is ready, Android has no UI 2026-09-04 23:19:31 +00:00

Closed #10 The transcript records no message id, which blocks replies, reactions and edits 2026-09-04 23:19:30 +00:00

Closed #11 Expired messages leave their decrypted attachments on disk forever 2026-09-04 22:29:57 +00:00

Closed #9 Reproducible builds 2026-09-04 21:27:17 +00:00

Closed #4 Eighteen live tests report PASSED while doing nothing 2026-08-31 17:56:05 +00:00

Closed #3 The app never creates a sealed group 2026-08-31 15:25:00 +00:00

Closed #2 Post-quantum stops at the handshake — iOS carries it through the ratchet 2026-08-31 15:18:49 +00:00

Closed #1 125 lines of sealed-roster work uncommitted and never built 2026-08-31 15:12:31 +00:00

27 Issues created by 1 user

Opened #1 125 lines of sealed-roster work uncommitted and never built 2026-08-31 13:42:58 +00:00

Opened #2 Post-quantum stops at the handshake — iOS carries it through the ratchet 2026-08-31 13:42:59 +00:00

Opened #3 The app never creates a sealed group 2026-08-31 15:09:37 +00:00

Opened #4 Eighteen live tests report PASSED while doing nothing 2026-08-31 17:52:53 +00:00

Opened #5 ./gradlew test fails on a clean tree, and the failures mean nothing 2026-08-31 21:21:50 +00:00

Opened #6 A failed key-log append is permanent: restore never re-registers 2026-09-01 21:45:20 +00:00

Opened #7 Android tablet support — layout only 2026-09-01 21:58:21 +00:00

Opened #8 React to a specific message — engine is ready, Android has no UI 2026-09-01 23:12:56 +00:00

Opened #9 Reproducible builds 2026-09-01 23:49:25 +00:00

Opened #10 The transcript records no message id, which blocks replies, reactions and edits 2026-09-02 09:38:58 +00:00

Opened #11 Expired messages leave their decrypted attachments on disk forever 2026-09-02 13:09:59 +00:00

Opened #12 Report a conversation, not only a story 2026-09-02 19:19:35 +00:00

Opened #13 Parental controls: gate disappearing messages, stories and anything timed to delete 2026-09-04 18:40:49 +00:00

Opened #14 Parental controls: a short activity summary — counts only, never content 2026-09-04 18:42:01 +00:00

Opened #15 Files: the ★-property (no write down) is not enforced on either client 2026-09-04 18:52:47 +00:00

Opened #16 Compose a reply — the transcript can resolve one now, the UI cannot start one 2026-09-04 23:19:09 +00:00

Opened #17 A photo sent as a file keeps its GPS; sent as a photo it does not 2026-09-05 01:59:39 +00:00

Opened #18 "Unsend" only deletes locally, and says otherwise 2026-09-05 02:06:45 +00:00

Opened #19 Sign-in shows nothing at all when it cannot complete 2026-09-05 13:34:28 +00:00

Opened #20 Report a message, not just a story 2026-09-05 16:00:01 +00:00

Opened #21 The instrumented suites look for tags the app no longer has 2026-09-05 20:36:49 +00:00

Opened #22 Creating a second account after signing out is refused with "Your session expired" 2026-09-11 14:05:44 +00:00

Opened #23 Hand a call to another of your devices 2026-09-12 00:45:07 +00:00

Opened #24 Private reactions: react to one person inside a group 2026-09-12 00:45:21 +00:00

Opened #25 Reactions during a call 2026-09-12 00:45:24 +00:00

Opened #26 Polls where nobody can tell who voted for what 2026-09-12 00:45:27 +00:00

Opened #27 Off-the-record conversations, never written to disk 2026-09-12 00:45:31 +00:00