The public changelog for 0.30.0, paired with flamenet-messenger-ios!231 which bumps the version. Nothing is built or uploaded by either.
Seven changes, covering everything on iOS main since releases.json recorded 0.29.0 on 2026-09-22. The relay is on the platform list too, because F7, F8 and F10 reached production on the day this entry is dated.
The three the headline leads with are the ones a person would want to know:
a conversation held off the record was written to the phone's history file and read back on the next launch
the obfs4 bridge you use, and the name of whoever offered it to you, were riding iTunes and iCloud backups
the parental PIN was one round of SHA-256 with the salt beside it, in a place backups carry off the phone, so holding a backup meant holding the PIN
Then: mute settings no longer write a conversation's name outside the sealed store; the conversation says at the time when a message could not be sent sealed; an unsigned identity-key replacement names itself instead of reading like a routine change; and nine Keychain items come inside the mechanism that keeps them out of backups.
Two calls that were not mine to make
What 0.29.0 contained cannot be answered from the repo. The only tag is baseline-2026-08-27, 708 commits back, so two commits dated 2026-09-22 could not be attributed to a build. Confirmed with the owner that they were not in it; they are included here.
The identity notice. The 0.29.0 notes already say the app announces a change to the server's identity, which reads close to this release's notice about another person's key being replaced. Confirmed those are two different things, so the text names the distinction instead of repeating the earlier claim.
Two commits deliberately left out
One added tests for the at-rest claims and changed no behaviour. The other half of the keychain commit only turned the UI tests on in CI. Neither is something a person using the app would notice, and this file is read by users.
Checks
ReleaseNotesTests passes, including the test that decodes the file this repository actually ships. The diff is 43 insertions and no deletions — verified a JSON round-trip was byte-identical before inserting, so the other 30 entries are untouched.
/releases is rendered by no test. The staging gate renders every public page before prod, which is where a template break would surface.
The copy went through the de-slop pass: it had used one construction four times, the same tic the pages picked up earlier today, and now uses it once where it does work.
The public changelog for 0.30.0, paired with flamenet-messenger-ios!231 which bumps the version. **Nothing is built or uploaded by either.**
Seven changes, covering everything on iOS main since `releases.json` recorded 0.29.0 on 2026-09-22. The relay is on the platform list too, because F7, F8 and F10 reached production on the day this entry is dated.
The three the headline leads with are the ones a person would want to know:
- a conversation held **off the record** was written to the phone's history file and read back on the next launch
- the **obfs4 bridge** you use, and the name of whoever offered it to you, were riding iTunes and iCloud backups
- the **parental PIN** was one round of SHA-256 with the salt beside it, in a place backups carry off the phone, so holding a backup meant holding the PIN
Then: mute settings no longer write a conversation's name outside the sealed store; the conversation says at the time when a message could not be sent sealed; an unsigned identity-key replacement names itself instead of reading like a routine change; and nine Keychain items come inside the mechanism that keeps them out of backups.
### Two calls that were not mine to make
**What 0.29.0 contained cannot be answered from the repo.** The only tag is `baseline-2026-08-27`, 708 commits back, so two commits dated 2026-09-22 could not be attributed to a build. Confirmed with the owner that they were not in it; they are included here.
**The identity notice.** The 0.29.0 notes already say the app announces a change to the server's identity, which reads close to this release's notice about another person's key being replaced. Confirmed those are two different things, so the text names the distinction instead of repeating the earlier claim.
### Two commits deliberately left out
One added tests for the at-rest claims and changed no behaviour. The other half of the keychain commit only turned the UI tests on in CI. Neither is something a person using the app would notice, and this file is read by users.
### Checks
`ReleaseNotesTests` passes, including the test that decodes the file this repository actually ships. The diff is **43 insertions and no deletions** — verified a JSON round-trip was byte-identical before inserting, so the other 30 entries are untouched.
`/releases` is rendered by no test. The staging gate renders every public page before prod, which is where a template break would surface.
The copy went through the de-slop pass: it had used one construction four times, the same tic the pages picked up earlier today, and now uses it once where it does work.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
The public changelog for 0.30.0, paired with flamenet-messenger-ios!231 which bumps the version. Nothing is built or uploaded by either.
Seven changes, covering everything on iOS main since
releases.jsonrecorded 0.29.0 on 2026-09-22. The relay is on the platform list too, because F7, F8 and F10 reached production on the day this entry is dated.The three the headline leads with are the ones a person would want to know:
Then: mute settings no longer write a conversation's name outside the sealed store; the conversation says at the time when a message could not be sent sealed; an unsigned identity-key replacement names itself instead of reading like a routine change; and nine Keychain items come inside the mechanism that keeps them out of backups.
Two calls that were not mine to make
What 0.29.0 contained cannot be answered from the repo. The only tag is
baseline-2026-08-27, 708 commits back, so two commits dated 2026-09-22 could not be attributed to a build. Confirmed with the owner that they were not in it; they are included here.The identity notice. The 0.29.0 notes already say the app announces a change to the server's identity, which reads close to this release's notice about another person's key being replaced. Confirmed those are two different things, so the text names the distinction instead of repeating the earlier claim.
Two commits deliberately left out
One added tests for the at-rest claims and changed no behaviour. The other half of the keychain commit only turned the UI tests on in CI. Neither is something a person using the app would notice, and this file is read by users.
Checks
ReleaseNotesTestspasses, including the test that decodes the file this repository actually ships. The diff is 43 insertions and no deletions — verified a JSON round-trip was byte-identical before inserting, so the other 30 entries are untouched./releasesis rendered by no test. The staging gate renders every public page before prod, which is where a template break would surface.The copy went through the de-slop pass: it had used one construction four times, the same tic the pages picked up earlier today, and now uses it once where it does work.
🤖 Generated with Claude Code
mentioned in commit
009ae253c6