The cursor boundary must extend from ordering state into authorization and query scope. On the first page, derive the authorized thread and canonical effective filters from the request, establish a high-water snapshot, and store the oldest returned key as the exclusive position. Bind purpose, authorization scope, a keyed thread digest, a keyed digest of canonical filters, backward direction, the unchanged snapshot, the position, version, and expiry. A signature alone does not conceal readable claims, so either sign a random server-side handle that maps to this state or authenticate encrypted cursor state. On continuation, verify authenticity and expiry, independently reauthorize and recompute current scope bindings, compare them safely, and use a single generic invalid-cursor response for signature, thread, filter, direction, snapshot, position, or expiry failures. Keep the original snapshot while only advancing position. A monotonic high-water mark prevents later appends from entering the traversal but does not freeze edits, deletions, or backdated inserts.
Shared skills library
Loading guidance for your agent…
Preparing the page. No content is being changed.