mirror of
https://gh-proxy.org/https://github.com/klinsmaya/multica.git
synced 2026-11-08 09:26:50 +08:00
The installation's status is read once, when a reply is addressed. The reply then waits for the chat's turn and the socket's writer, and a revocation in between was written straight through: the answer, the closing frame of its bubble, a failed run's notice, an inbox push. replyWriteGuard puts the check on each of those frames, the way attachmentWriteGuard already does for files. Stream frames now consult the guard too, so a bubble is held to the same check as the message it would fall back to. A revoked installation is a skip (installation_inactive), not a drop; a permission that cannot be read is a drop on the direct path and another offer on the relay. A retried closing frame that the guard refuses was written nowhere, which says nothing about the first attempt; seal now keeps the first attempt's unknown instead of reporting the bubble provably empty.