Turns what a conversation archive gives back into what the endpoint owes.
Both directions are pure functions, so a host's own logic is reduced to the one effectful step it cannot avoid — reading the archive — and every consumer, on whichever effect system, answers a given session identically.
One picture out of the same page the transcript was read from.
One picture out of the same page the transcript was read from.
A page holds the reference — this call, this part of its answer — and hands it straight back, so the picture is found where it already sits instead of being copied anywhere. Nothing else is served: a part that is not a picture, or a picture in a format this contract will not show, is answered the same way a place that does not exist is. That refusal is what keeps this endpoint from serving whatever a session happens to hold.
A session that is not there and an id the archive will not touch are things the asker can act on, so they keep their own answers. Everything else is the host's problem, not the asker's, and is reported as one — with none of the host's detail, which can name a path on the machine. A host that wants that detail logs it on its own side.
The transcript for a session's entries, oldest first.
The transcript for a session's entries, oldest first.
A host that follows a session holds the entries it has seen rather than a page it read, so this is where those become a transcript — the same reading, over the same entries, as the page a reader asks for once. It heard the session from wherever it joined, which is not necessarily the start, so the transcript claims nothing about where the session began.