The framing of an LLM call as a stateless pure function is the right mental model, and it makes clear that every "memory" feature is really just history reconstruction you pay for on every call. The trade-off I keep running into is that naive full-history replay balloons token cost and latency as a conversation grows, so at some point you need summarization or retrieval to bound the context. When you move to a memory architecture, how do you decide what to keep verbatim versus compress, and do you evaluate whether that compression is dropping facts the model later needs?