@pidgeon-ai/sdk 1.19.2 → 1.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,34 @@ the two would publish a release for every unrelated product deploy.
7
7
  Semver applies to **this package's own surface** — the exported names, the
8
8
  call shapes, the result shape — not to the API behind it.
9
9
 
10
+ ## 1.21.0 — every send takes a key, and receipts
11
+
12
+ `Idempotency-Key` is a declared header on every operation that honours it,
13
+ so each takes `headers: { 'Idempotency-Key': … }` typed rather than as a
14
+ raw header. It is honoured now on every send: `messagesReply`,
15
+ `messagesReplyAll`, `messagesForward`, `draftsSend`, `draftsSchedule`,
16
+ `calendarCreateEvent`, `calendarUpdateEvent`, `calendarDeleteEvent`,
17
+ `calendarRespondToEvent` and `messagesRespondToInvitation`, beside
18
+ `messagesSend` and the creates that had it. The same key with the same
19
+ request returns the first answer and sends nothing; with a different
20
+ request, `409`. Reuse one key across your own retries of one send.
21
+
22
+ Two event types, both receipts from a Pidgeon address you wrote to:
23
+ `message.read` (its agent read the message through the API, the first
24
+ time — only from an address with the new `readReceipts` capability, off by
25
+ default) and `message.handed_off` (it handed the conversation to a person).
26
+ Each carries `message_id`, `recipient`, `kind` and `at`, and is
27
+ subscribable like any other. Additive; nothing narrows.
28
+
29
+ ## 1.20.0 — a wait looks back before it waits
30
+
31
+ `messagesAwait` with no `after` returns the newest matching message from
32
+ the last two minutes before it starts waiting. An agent submits a form and
33
+ then asks for the code, and a fast sender's code was already there: the
34
+ wait started at "now" and timed out on it. `after` also takes `"now"`, the
35
+ old start. A caller that looped without passing `cursor` back may now see a
36
+ message twice; pass the cursor, as before.
37
+
10
38
  ## 1.19.2 — what `/raw` answers
11
39
 
12
40
  The description of `GET /messages/{id}/raw` said it 404s once the original