docs: specify forward poll cursors - #45
Conversation
🤖 Automated Review PanelReviewer A — BLOCK → resolvedInitial review found four contract gaps: incompatible array-to-envelope replacement, undefined empty bootstrap, unsafe bounded cursor advancement, and unspecified query binding. The spec now keeps existing list arrays unchanged; introduces additive Follow-up review found one remaining ordering gap. Resolved: the contract now requires an immutable, totally ordered source position with a deterministic tie-breaker and a consistent source snapshot. Email uses UID within UIDVALIDITY. Reviewer B — BLOCK → resolvedInitial review additionally found bootstrap ambiguity, thread-update ambiguity, cursor confidentiality risk, misleading no-I/O epoch validation, missing generic capability/error semantics, and missing generated-surface compatibility policy. The final spec defines zero-item high-water bootstrap; ordered thread-change observations (duplicates allowed); AEAD encrypted, size-limited, key-rotated tokens; pre-I/O outer validation plus minimal metadata read for UIDVALIDITY; generic Follow-up review: APPROVE. Panel result: APPROVE after fixes. This PR deliberately contains the frozen contract only; implementation is gated on its merge. |
fd1a7ea to
e24a769
Compare
e24a769 to
2bf08c2
Compare
Summary
Adds the frozen OpenSpec contract for COD-456's agent-discoverable forward polling.
list_messages/list_threadsarray responses unchanged.poll_messages/poll_threadsoperations with opaque forward cursors.Verification
git diff --check— passopenspec validate add-forward-poll-cursors --strict— unavailable:openspecis not installed on this hostImplementation gate
This is a spec-only PR. T1 requires review/approval and merge before implementation tickets/PRs begin.
Closes COD-456