Store exact relay-owned post-takeover snapshot proof.
Relay-only TLS endpoint. Authentication uses one dedicated fixed-size bearer before body parsing; exact bytes are capped at 4096 by a counting limited reader (and by Content-Length when the transport supplies it), encrypted at rest, and bound to the unique prepared handoff. The first store returns 201, exact replay returns 200, and changed or abandoned authority returns a typed 409.
relaySnapshotReceiptBearerAuthorizationBearer <43-character unpadded base64url>Dedicated relay-only 32-byte snapshot-receipt token. It is not a relay callback token, attach JWT, runtime JWT, or user credential.
application/json- body
schemaVersion*numberorgId*string1 <= lengthsessionId*string1 <= lengthhandoffNonce*string^[A-Za-z0-9_-]{43}$preparedCorrelationDigest*string^[0-9a-f]{64}$attachTokenJti*string^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidptyEpoch*string^(0|[1-9][0-9]*)$carrierEpoch*string^(0|[1-9][0-9]*)$storeAuthorityId*string1 <= lengthproofRevision*string^(0|[1-9][0-9]*)$proofDigest*string^[0-9a-f]{64}$carrierBoundary*string^(0|[1-9][0-9]*)$resolvedBoundary*string^(0|[1-9][0-9]*)$lastHostSeq*string^(0|[1-9][0-9]*)$reservationRequestId*string^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidreservationRequestDigest*string^[0-9a-f]{64}$reservedCandidateCarrierEpoch*string^(0|[1-9][0-9]*)$gapFromSeq*|^(0|[1-9][0-9]*)$gapToSeq*|^(0|[1-9][0-9]*)$gapReason*string|nullsnapshotRequestId*string^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidrawFrameDigest*string^[0-9a-f]{64}$frameSeq*string^(0|[1-9][0-9]*)$atSeq*string^(0|[1-9][0-9]*)$inStream*booleanExact durable replay.
application/json- response
state*stringreceiptRevision*string1 <= lengthcurl -X POST 'https://app.rensei.ai/api/relay/session-shim/snapshot-receipts' \ -H 'Content-Type: application/json' \ -d '{ "schemaVersion": 2, "orgId": "string", "sessionId": "string", "handoffNonce": "string", "preparedCorrelationDigest": "string", "attachTokenJti": "29c83b11-3317-4a35-9cd3-43733e0bc11e", "ptyEpoch": "string", "carrierEpoch": "string", "storeAuthorityId": "string", "proofRevision": "string", "proofDigest": "string", "carrierBoundary": "string", "resolvedBoundary": "string", "lastHostSeq": "string", "reservationRequestId": "f67df14c-6516-4128-9385-e696d3660552", "reservationRequestDigest": "string", "reservedCandidateCarrierEpoch": "string", "gapFromSeq": "string", "gapToSeq": "string", "gapReason": "controller_unforwarded", "snapshotRequestId": "18560400-c7fb-48f9-bb07-751d8d6e6aab", "rawFrameDigest": "string", "frameSeq": "string", "atSeq": "string", "inStream": true}'{ "state": "stored", "receiptRevision": "string"}Subscribe to live Inbox updates across every member organization.
One human-only SSE connection fans in authorized Inbox rows across organizations. Emits row.upsert, ask.opened, ask.resolved, focused entry.appended, count.needsYou and a heartbeat every 15 seconds. Last-Event-ID resumes exclusively from a bounded process-local buffer retained for 60 seconds after disconnect; cursor_expired reconnect events require a refetch. Redis is best effort; reconnect/refetch on replica change, capacity loss or projection errors. This is not the durable bus_seq cursor.
Read a session's sent and received a2a messages.
Returns the a2a messages a dispatched session sent (metadata.senderSessionId, its handle, or the formal a2a-session owner) and received (its handle or the formal owner), newest first with cursor paging and session-wide sent/received counts. Org and project fenced like the other session reads; a cross-scope session reads as missing.