Whether authenticated discovery changed protocol state. An empty retry
batch alone cannot establish this: authorization can change without sending
or decrypting a message.
SQLite-backed implementation of iris_chat_protocol::StorageAdapter.
Keys are namespaced by (owner_pubkey_hex, device_pubkey_hex) so a
single database serves multiple owner accounts and devices without
keyspace collisions, matching the per-(owner, device) directory
scoping the previous file-backed adapter used.
Immutable local checkpoint bytes. Its content identity is computed once,
never published, and relies on SHA-256 collision resistance. Keeping the
identity and bytes private prevents a caller from reusing an ID for new data.
What a publish effect carries, recorded by the engine that produced it.
It travels beside the event (effect, queue, outbox row) and never on the
wire: message events name no recipient, so a pairwise envelope and shared
group ciphertext cannot be told apart, or routed, from their tags.
Verifies the exact signed AppKeys evidence accepted for direct-chat setup.
Profile indexes and reconstructed device lists must never substitute for it.
Resolve the single owner claim carried by an invite and optional caller
hint. Duplicated compatibility fields must agree; the hint may supply a
missing claim but may never override one already present in the invite.