Three things are kept apart on purpose: state is the truth about a run, memory is what can be retrieved later, and context is the projection one component sees for one step. Mixing them is how agents end up depending on transcript length.
Architecture contract
Rules that follow from this: context is always rebuildable from state; nothing lives only in context; retrieval results enter context as chunks with provenance and a trust class; and untrusted content is fenced, never merged into control instructions.