Five fixes found by running the Android app against the iPhone app on a local relay, feature by feature, both directions (2026-10-08).
Reactions, edits and pins were dropped on arrival.Session.absorb kept only isRenderable envelopes before its loop, and that is false for exactly these three, so the branches that apply them never ran. Android to Android too.
A reply drew no quote.Line.about was stored and never read by ChatScreens.
A poll card did not move until the group was reopened. The UI held the PollBook's own entries, which change in place, and the refresh only ran on a tick that carried a message.
A blocked contact still got through when sending sealed. The relay refuses a blocked sender only on an identified send. A sealed send is authorised by our delivery key and does not name the sender, so the inbox now refuses anyone on the blocked list, kept in the vault.
A message sent while the relay was unreachable vanished. The composer clears the draft first, and Session.send recorded the line only after the relay answered. It is now kept as "Undelivered, will send" and queued for the outbox; any other failure is kept as failed.
Each has a test that was red before its fix.
Tests: app 376, client 480 (30 live tests skipped, no relay), engine 723 with the pinned vectors, 0 failures.
The iPhone half of the block fix is a separate MR in flamenet-messenger-ios.
Five fixes found by running the Android app against the iPhone app on a local relay, feature by feature, both directions (2026-10-08).
- **Reactions, edits and pins were dropped on arrival.** `Session.absorb` kept only `isRenderable` envelopes before its loop, and that is false for exactly these three, so the branches that apply them never ran. Android to Android too.
- **A reply drew no quote.** `Line.about` was stored and never read by `ChatScreens`.
- **A poll card did not move until the group was reopened.** The UI held the PollBook's own entries, which change in place, and the refresh only ran on a tick that carried a message.
- **A blocked contact still got through when sending sealed.** The relay refuses a blocked sender only on an identified send. A sealed send is authorised by our delivery key and does not name the sender, so the inbox now refuses anyone on the blocked list, kept in the vault.
- **A message sent while the relay was unreachable vanished.** The composer clears the draft first, and `Session.send` recorded the line only after the relay answered. It is now kept as "Undelivered, will send" and queued for the outbox; any other failure is kept as failed.
Each has a test that was red before its fix.
Tests: app 376, client 480 (30 live tests skipped, no relay), engine 723 with the pinned vectors, 0 failures.
The iPhone half of the block fix is a separate MR in flamenet-messenger-ios.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
added 1 commit
<ul><li>cba942a6 - Answer every request in the lost-send test, not a fixed four</li></ul>
[Compare with previous version](/extant2000/flamenet-messenger-android/-/merge_requests/160/diffs?diff_id=2090296934&start_sha=5b3d194d65171bcb3879858b834178f7a6d97093)
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.
Five fixes found by running the Android app against the iPhone app on a local relay, feature by feature, both directions (2026-10-08).
Session.absorbkept onlyisRenderableenvelopes before its loop, and that is false for exactly these three, so the branches that apply them never ran. Android to Android too.Line.aboutwas stored and never read byChatScreens.Session.sendrecorded the line only after the relay answered. It is now kept as "Undelivered, will send" and queued for the outbox; any other failure is kept as failed.Each has a test that was red before its fix.
Tests: app 376, client 480 (30 live tests skipped, no relay), engine 723 with the pinned vectors, 0 failures.
The iPhone half of the block fix is a separate MR in flamenet-messenger-ios.
🤖 Generated with Claude Code
added 1 commit
cba942a6- Answer every request in the lost-send test, not a fixed fourCompare with previous version
mentioned in merge request flamenet-messenger-ios!238
mentioned in commit
55801af2e8mentioned in merge request !162