Cross-platform fixes: reactions, edits, reply quotes, polls, blocking, lost sends #187

Merged
paulhitt merged 6 commits from crossplat/android-cross-platform-fixes into main 2026-10-09 12:14:24 +00:00
paulhitt commented 2026-10-09 10:08:54 +00:00 (Migrated from gitlab.com)

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

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)
paulhitt commented 2026-10-09 10:48:48 +00:00 (Migrated from gitlab.com)

added 1 commit

  • cba942a6 - Answer every request in the lost-send test, not a fixed four

Compare with previous version

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)
paulhitt commented 2026-10-09 10:49:22 +00:00 (Migrated from gitlab.com)

mentioned in merge request flamenet-messenger-ios!238

mentioned in merge request flamenet-messenger-ios!238
paulhitt (Migrated from gitlab.com) scheduled this pull request to auto merge when all checks succeed 2026-10-09 12:09:46 +00:00
paulhitt (Migrated from gitlab.com) merged commit 55801af2e8 into main 2026-10-09 12:14:24 +00:00
paulhitt commented 2026-10-09 12:14:25 +00:00 (Migrated from gitlab.com)

mentioned in commit 55801af2e8

mentioned in commit 55801af2e881e472c2f1ecffc43044a1fdc332f9
paulhitt commented 2026-10-09 19:16:47 +00:00 (Migrated from gitlab.com)

mentioned in merge request !162

mentioned in merge request !162
Sign in to join this conversation.