The envelope BOTH transcript endpoints return — the agent conversation
and an async consult's messages. One shape, one polling loop, whichever
you are reading.
Deliberately not a Page: collections page, transcripts POLL.
cursor always marks the position after the last message you were given,
whether or not more exist — hold on to it and pass it back on every poll.
A poll with nothing new returns items: [] and the same cursor, so you
never have to reason about which cursor is still valid. hasMore means
"fetch the next page now" rather than "wait for new activity".
The envelope BOTH transcript endpoints return — the agent conversation and an async consult's messages. One shape, one polling loop, whichever you are reading.
Deliberately not a Page: collections page, transcripts POLL.
cursoralways marks the position after the last message you were given, whether or not more exist — hold on to it and pass it back on every poll. A poll with nothing new returnsitems: []and the same cursor, so you never have to reason about which cursor is still valid.hasMoremeans "fetch the next page now" rather than "wait for new activity".