2026-04-17 - 2026-10-17
Overview
182 Pull requests merged by 1 user
Merged
#262 Prod compose: record the hardening running on the box since 2026-10-15
Merged
#261 Put FN_FUNDING_MANIFESTS in the compose the repository ships
Merged
#260 Prove this repository belongs to the funding manifest
Merged
#259 Vouch for a funding.json manifest, when this relay is configured to
Merged
#258 Security audit 2026-10-15: relay fixes
Merged
#257 Messenger pages: sign-up open in 12 countries (adds Canada, Australia, New Zealand)
Merged
#256 Relay 0.32: merge the release branch into main, with the badge column carried onto the new write path
Merged
#255 ci: the staging gate waits for Postgres over TCP, from another container, twice
Merged
#254 Relay review wave 2: in-process wake, signin and tokens, scale, streaming attachments
Merged
#253 ci: run the image job on mac2, and make the staging gate say what failed
Merged
#249 GlitchTip error reporting (FN_RELEASE) + Gitea Actions cutover
Merged
#248 Bridge inventory; trust X-Forwarded-For only from FN_TRUSTED_PROXY_ADDRS
Merged
#247 0.32 apps: descriptor switches, /add contact-link page, app links; pin e2e 50fcc99
Merged
#245 Privacy wave 0: per-device digests, intros, Unlisted, anonymous reads, padding groundwork, SimpleX comparison
Merged
#246 obfs4 bridge to the TLS front door with PROXY lines; Costa Rica and Panama in the sign-up copy
Merged
#244 Privacy sweep: opaque TURN usernames, delete on receipt, coturn logs, retention scripts
Merged
#242 /files: how to send a file only one person can open
Merged
#241 Spanish page titles say what people search for, too
Merged
#240 Five page titles say what people search for
Merged
#239 Describe what a shared-account server keeps, with no email
Merged
#238 Say signup asks for an email only on servers with their own accounts
Merged
#237 Bump .e2e-ref to e2e 5225607 and regenerate doc pages
Merged
#235 Point links at the extant2000 GitLab group
Merged
#236 Roadmap: six planned items
Merged
#233 Release notes for Android 0.31
Merged
#232 Retry a transaction SQLite refuses as locked; /self-hosting F10 repair
Merged
#231 Release notes for Android 0.30
Merged
#230 Put WhatsApp on the comparison table
Merged
#229 Release notes: 0.30.0 becomes 0.31.0
Merged
#228 Release notes for 0.30.0
Merged
#227 A standing page on who decides what you can install
Merged
#226 Put Mail and Blogs in the portal tab strip
Merged
#225 Name Apple and Google on the metadata and privacy pages
Merged
#224 Stop saying Signal requires a phone number to register
Merged
#223 Take the flamenet-e2e doc updates and regenerate the pages
Merged
#222 Sealed-sender leak paths, the contact graph that outlived its removal, and two timing fixes
Merged
#221 The alg header is pinned, and now something says so
Merged
#220 The deploy waits for the edge to answer, not for eight seconds
Merged
#219 What's new for iPhone 0.29.0 and the relay
Merged
#218 Regenerate the published doc pages
Merged
#217 One copy of each refusal, and one base64url
Merged
#216 Revocation is tested off the inbox, where it was not
Merged
#215 Pin the engine at the §6.27 and §6.28 status
Merged
#214 Warn that FN_EMAIL_VERIFICATION_REQUIRED locks out Android
Merged
#213 docs/CONFIGURATION.md and docs/API.md describe what the relay actually serves
Merged
#211 Stop pointing people at Flamenet Files
Merged
#212 Remove a refusal helper nothing calls
Merged
#210 Pin the autovacuum dialect guard with a test
Merged
#209 Gate the autovacuum tuning on the dialect, not on SQLDatabase
Merged
#207 Move About under Project in the rail
Merged
#206 Hand the runner cache timer to the infra repo
Merged
#205 Lead the channel strip with Home, and drop Web
Merged
#204 Drop the parent wordmark from the masthead
Merged
#203 Put the new-features band back on the landing page
Merged
#201 Render the site as a channel of the flamenet.io portal
Merged
#202 0.18 on the site
Merged
#200 The Spanish download page names the current build
Merged
#199 Android 0.17 release notes, and the three new features on the site
Merged
#198 The deploy gate was rendering seven pages out of twenty-seven
Merged
#197 A support page, a contact page, and an address people can find
Merged
#196 Release notes for Android 0.16, and the install page with them
Merged
#195 Release notes for Android 0.15, and the install page with them
Merged
#194 The iPhone reaches the what's new page
Merged
#192 Release notes for Android 0.14, and the install page with them
Merged
#191 Say 0.13 on the install page
Merged
#190 Release notes for Android 0.13
Merged
#189 Say when a 401 means only that the proof was spent
Merged
#188 docs: regenerate relay.leaf after the README gained the site link
Merged
#187 An empty alert token must not discard a VoIP token
Merged
#186 fix(monitoring): a dropped legacy table is a pass, not a drift
Merged
#185 The security and community pages in Spanish
Merged
#184 The safety page in Spanish
Merged
#183 Android 0.12 release notes, and two more pages in Spanish
Merged
#182 Point the Organization schema at the repositories
Merged
#181 Link the site from the README
Merged
#180 Publish llms.txt
Merged
#179 A year's cache on the fingerprinted assets
Merged
#178 x-default was empty on the homepage, and /donate was not listed
Merged
#177 Keep the whitespace around translated runs
Merged
#176 The front door in Spanish
Merged
#175 The Files page in Spanish
Merged
#174 The access log records message size too, and outlives the envelope
Merged
#173 The Messages page in Spanish
Merged
#172 Say what a level does, and what it does not
Merged
#171 Cut the Flamenet column down to the size of the others
Merged
#65 Sync the relay from flamenet-messenger-ios 2d50ffc
Merged
#170 No emoji in the stylesheet comments
Merged
#169 The hero is the app, not a drawing of it
Merged
#168 Drop the last dated comment
Merged
#167 Cut the dates and the was-then-now framing
Merged
#166 Self-hosting: the compose files start, and every variable is documented
Merged
#165 Say it once, and say the iPhone beta is open on the front page too
Merged
#164 Regenerate the spec page with its status markers
Merged
#163 Read like a codebase
Merged
#162 A bad device token is not a configuration problem
Merged
#161 The iPhone beta is open
Merged
#160 Approval day is a switch, not seven edits (relay#3)
Merged
#159 Name the edge in the alert, not just its symptoms
Merged
#158 Build the image on merge requests only when it could have broken (relay#6)
Merged
#156 /health answers 503 when the relay cannot reach its database (relay#60)
Merged
#157 The monitor could not see the outage it existed to catch (relay#61)
Merged
#154 Serve the public pages in Spanish, starting with /get (relay#47)
Merged
#155 Restore three closing braces lost in a rebase (main did not compile)
Merged
#148 Structured data for the public pages (relay#48)
Merged
#153 /get advertised 0.9 on the evening 0.11 shipped
Merged
#152 Group the message features by what somebody is trying to do (relay#44)
Merged
#151 /metadata: the size it keeps is exact, not approximate (relay#59)
Merged
#150 The releases encoder dropped the canonical it was given
Merged
#149 Set the canonical and origin on every rendered page (and say 0.11)
Merged
#147 Release notes for Android 0.12
Merged
#144 Take the e2e update that corrects the Android claims (relay#46)
Merged
#146 robots.txt, sitemap.xml and canonical URLs (relay#48)
Merged
#143 Say why the doc-pages advisory fired, not only what to run (relay#56)
Merged
#145 The device directory serves the account's address
Merged
#116 The deploy now carries the test fleet with it
Merged
#142 A page that says how to report somebody, and what we cannot do about it
Merged
#140 The site wears the product's mark
Merged
#139 Screen the federation allowlist and say what was seen (relay#58)
Merged
#137 Switching the sign-up work on no longer walls out an old build (relay#52)
Merged
#141 A removed device is told so, instead of being refused for ever (401 to 410)
Merged
#138 Push tokens outlive the device and the account (relay#19, relay#18)
Merged
#121 Stop the secret sweep failing on a clean tree (relay#53)
Merged
#136 The comparison page, in words people use (relay#12)
Merged
#135 Take the v3 table update (relay#46)
Merged
#134 Make a wrong FN_APNS_ENV diagnose itself (ios#7)
Merged
#133 Federation resolves a peer name before fetching it (relay#55)
Merged
#117 The comparison table scored Signal wrong, in our favour (relay#11)
Merged
#132 Add the obfs4 bridge as an opt-in compose service
Merged
#131 The footer link to /releases turned main red
Merged
#130 Android 0.10 — release notes
Merged
#128 The gate said 22 while rendering 24
Merged
#129 The location card promised more than the app does
Merged
#127 The footer had no way to reach what changed
Merged
#126 Gate /releases too — the one page the derived list cannot see
Merged
#125 A What's-new page, and warmer public copy
Merged
#124 A full group could send ~5 messages an hour (relay#54)
Merged
#123 Pin the e2e clone, keep a loud advisory at HEAD (relay#56)
Merged
#120 Remove the plaintext transport (relay#50)
Merged
#115 Fix: the relay test suite did not compile on Linux, and CI was red
Merged
#114 Regenerate the doc pages — two of them had drifted (relay#46)
Merged
#113 Document the email-verification flag where SMTP is configured (relay#40)
Merged
#112 A weekly check that the privacy properties still hold
Merged
#111 Cut the edge IP retention window from a week to a day (relay#19)
Merged
#110 Two undocumented disclosures, and a promise that had gone stale (relay#18)
Merged
#109 Inventory where plaintext can come to rest (relay#17)
Merged
#108 The relay no longer connects to Postgres as a superuser (relay#15)
Merged
#94 Alert when a prekey pool runs low (relay#35)
Merged
#107 Test multi-homing across two relays, not just against itself (relay#36)
Merged
#106 Spike: cold storage for delivered envelopes, and why it is declined (relay#28)
Merged
#105 Spike: relay-side sealed fan-out, and why it is declined (relay#27)
Merged
#104 Range requests for large attachments (relay#37)
Merged
#103 Connection pooling, and a read path decision (relay#29)
Merged
#102 Stop reading the same device row twice on every poll (relay#51)
Merged
#101 Measure a real conversation's cost (relay#38)
Merged
#100 Prove a second relay instance actually works (relay#31)
Merged
#99 Publish capacity metrics and a status page (relay#34)
Merged
#98 Rotate identity keys, not only prekeys (relay#25)
Merged
#97 Witness co-signed key-log heads (relay#23)
Merged
#96 Drain connections on deploy (relay#33)
Merged
#95 A standing gate for the seven paths that must never break
Merged
#93 Three pages instead of one very long one
Merged
#74 Refuse look-alike handles and throwaway addresses at sign-up
Merged
#76 Prove an address before an account can use the relay
Merged
#78 Charge a few seconds of arithmetic before an account exists
Merged
#88 Member-vouched sign-up codes, wired in and switched off
Merged
#87 Accept a report, so blocking is not the only thing a person can do
Merged
#89 Carry a signed wipe instruction, without being able to forge one
Merged
#90 Let somebody watch the key log for their own account
Merged
#77 Count sign-ups by network, not only by address
Merged
#84 Say on the privacy page that search stays on the phone
Merged
#81 Say on the privacy page what stays on the phone
Merged
#75 Public pages: accuracy sweep and an in-progress tone
Merged
#92 Regenerate the spec page for §6.15 through §6.27
Merged
#91 Regenerate the spec page for §6.11
Merged
#72 Write down that a cross-repo doc change reddens main
Merged
#71 Run the quick start we publish, and it did not work
Merged
#70 Regenerate /spec: Android's PQ ratchet is verified
Merged
#69 Catch a doc page whose source moved on without it
Merged
#68 Regenerate the doc pages, and one of them was a live bug
Merged
#67 Write down how work gets tracked
Merged
#66 The metadata page said sealed rosters were not built
Merged
#64 Sync the relay from flamenet-messenger-ios 5bc7258
50 Issues closed from 1 user
Closed
#250 Gitea CI on PR #1: doc-pages and swift job failures
Closed
#62 Landing page: feature the five new features as they ship
Closed
#6 Pipelines queue over an hour behind the shared OVH runner
Closed
#44 Keep the features page simple as features are added
Closed
#56 A merge in flamenet-e2e silently reddens this repo's main and blocks every MR
Closed
#48 SEO: robots, sitemap, canonical, link previews and structured data
Closed
#60 /health answered 200 through a total database outage
Closed
#53 secret-sweep.sh fails on a clean main — a gate that cries wolf
Closed
#46 Stale protocol-version claims: Android is on v3, not v2
Closed
#12 The comparison page is written for engineers, not for the people reading it
Closed
#58 Federation: screen peer addresses before admitting a relay to the network
Closed
#52 Sign-up has no deliberate backstop, and proof-of-work cannot simply be switched on
Closed
#55 Federation host filter never resolves DNS — SSRF reachable in open mode
Closed
#54 A full group can send ~5 messages an hour before being rate limited
Closed
#50 The comparison and privacy pages disagree about plain mode
Closed
#45 Sweep the public pages for platform gaps and file the sync tickets
Closed
#11 The comparison table scores Signal wrong on the post-quantum ratchet
Closed
#9 Test accounts are reaching the production database
Closed
#40 Verify the email before an account can send
Closed
#2 Production is 4 groups, 4 plaintext, 0 sealed
Closed
#17 Inventory every place plaintext can come to rest
Closed
#15 The relay connects to Postgres as a superuser — drop it to a scoped role
Closed
#13 The relays-relay1..3 fleet is still on the old image and announces protocol traffic
Closed
#28 Cold storage for delivered envelopes
Closed
#27 Relay-side sealed fan-out for groups
Closed
#51 The same device row is read twice on every poll
Closed
#42 Refuse the obvious throwaways and near-identical handles
Closed
#38 Measure a real conversation's cost
Closed
#37 Range requests for large attachments
Closed
#36 Shard mailboxes across relays
Closed
#35 Alert when a prekey pool runs low
Closed
#34 Publish capacity metrics and a status page
Closed
#33 Drain connections on deploy
Closed
#31 Prove a second relay instance actually works
Closed
#29 Connection pooling and a read path that scales
Closed
#26 Validate attachments on both sides
Closed
#25 Rotate identity keys, not only prekeys
Closed
#23 Witness co-signed key-log heads
Closed
#30 Attachments in object storage
Closed
#39 Proof of work at sign-up
Closed
#43 Member-vouched sign-up codes for the early phase
Closed
#32 Let people monitor the log for their own account
Closed
#41 Progressive limits per network, not just per account
Closed
#24 Clients enforce revocation from the log, not the directory
Closed
#10 A cross-repo doc change turns main red for the length of the queue
Closed
#4 Nothing boots the self-hoster quick start in CI
Closed
#8 The launch metric is mostly test accounts
Closed
#7 The live self-hosting page still has the broken instructions
Closed
#5 Track work in issues and merge requests, and write the convention down
Closed
#1 /metadata says sealed rosters are not built. They are — and nobody is using them
64 Issues created by 1 user
Opened
#1 /metadata says sealed rosters are not built. They are — and nobody is using them
Opened
#2 Production is 4 groups, 4 plaintext, 0 sealed
Opened
#3 Six site clauses to flip when the iPhone build is approved
Opened
#4 Nothing boots the self-hoster quick start in CI
Opened
#5 Track work in issues and merge requests, and write the convention down
Opened
#6 Pipelines queue over an hour behind the shared OVH runner
Opened
#7 The live self-hosting page still has the broken instructions
Opened
#8 The launch metric is mostly test accounts
Opened
#9 Test accounts are reaching the production database
Opened
#10 A cross-repo doc change turns main red for the length of the queue
Opened
#11 The comparison table scores Signal wrong on the post-quantum ratchet
Opened
#12 The comparison page is written for engineers, not for the people reading it
Opened
#13 The relays-relay1..3 fleet is still on the old image and announces protocol traffic
Opened
#14 Plan a scaling strategy for the relay (and revisit long-polling)
Opened
#15 The relay connects to Postgres as a superuser — drop it to a scoped role
Opened
#16 Security and hardening review before wider testing
Opened
#17 Inventory every place plaintext can come to rest
Opened
#18 Standing: minimize metadata — what is stored, what actually uses it
Opened
#19 Remove location and other identifying data — starting with the edge access log
Opened
#20 Tune the rate limits so ordinary conversation never hits them
Opened
#21 Optimize and stabilize the server
Opened
#22 Verify the self-hosting options work together, not just individually
Opened
#23 Witness co-signed key-log heads
Opened
#24 Clients enforce revocation from the log, not the directory
Opened
#25 Rotate identity keys, not only prekeys
Opened
#26 Validate attachments on both sides
Opened
#27 Relay-side sealed fan-out for groups
Opened
#28 Cold storage for delivered envelopes
Opened
#29 Connection pooling and a read path that scales
Opened
#30 Attachments in object storage
Opened
#31 Prove a second relay instance actually works
Opened
#32 Let people monitor the log for their own account
Opened
#33 Drain connections on deploy
Opened
#34 Publish capacity metrics and a status page
Opened
#35 Alert when a prekey pool runs low
Opened
#36 Shard mailboxes across relays
Opened
#37 Range requests for large attachments
Opened
#38 Measure a real conversation's cost
Opened
#39 Proof of work at sign-up
Opened
#40 Verify the email before an account can send
Opened
#41 Progressive limits per network, not just per account
Opened
#42 Refuse the obvious throwaways and near-identical handles
Opened
#43 Member-vouched sign-up codes for the early phase
Opened
#44 Keep the features page simple as features are added
Opened
#45 Sweep the public pages for platform gaps and file the sync tickets
Opened
#46 Stale protocol-version claims: Android is on v3, not v2
Opened
#47 Localize the public pages — Spanish first
Opened
#48 SEO: robots, sitemap, canonical, link previews and structured data
Opened
#49 Peer-to-peer file transfer, reusing Flamenet Files and enclave
Opened
#50 The comparison and privacy pages disagree about plain mode
Opened
#51 The same device row is read twice on every poll
Opened
#52 Sign-up has no deliberate backstop, and proof-of-work cannot simply be switched on
Opened
#53 secret-sweep.sh fails on a clean main — a gate that cries wolf
Opened
#54 A full group can send ~5 messages an hour before being rate limited
Opened
#55 Federation host filter never resolves DNS — SSRF reachable in open mode
Opened
#56 A merge in flamenet-e2e silently reddens this repo's main and blocks every MR
Opened
#57 Spike: a pluggable transport (obfs4-style) for when a relay gets blocked
Opened
#58 Federation: screen peer addresses before admitting a relay to the network
Opened
#59 Message size is visible on every envelope, and is not on /metadata
Opened
#60 /health answered 200 through a total database outage
Opened
#61 CI cache volumes filled the disk the production database lives on
Opened
#62 Landing page: feature the five new features as they ship
Opened
#63 Attachment reads: redirect to the object store so a CDN can serve blobs directly (multi-region)
Opened
#250 Gitea CI on PR #1: doc-pages and swift job failures