Files
flamenet-messenger-android/client
Paul HittandClaude Opus 5 c2f9889bd9 Revoke presence on block, keep the key pools alive, release SAF grants
Four things this client was not doing.

Presence: a per-contact token lets its holder ask the relay whether this
account is online, and the relay answers while the published digest set
carries it. Block and remove never touched that set. They do now, and the
publish no longer skips an empty set, which meant revoking the last
contact's token never reached the relay at all.

One-time prekeys: twenty were published at registration and nothing ever
topped the pool up. Once they were spent, a stranger's first message had
no prekey to take. Replenished from the poll, rate-gated to an hour.

Signed prekey: the rotation existed and nothing called it, so this device
kept one signed prekey for its whole life. Also driven from the poll, on
its own much longer clock.

SAF: deleting a linked file dropped the row and kept the persisted read
grant, so the app held access to files the user believed it had let go of.
The vault now hands back the bookmarks it dropped and the app releases them.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 09:28:53 -04:00
..