The session transcript is append-only. Message entries retain the complete
interaction, while rho_build_agent_context() projects the active provider
context through the latest compaction entry and any explicit exclusions.
Details
rho_compact() prepares a stable cut point, runs an asynchronous compactor,
appends a semantic checkpoint, and invokes before/after policy methods.
Automatic threshold compaction and one bounded provider-input recovery use the
same protocol. Applications can supply another RhoCompactor class or
specialize the public generics without replacing the agent loop.