//! Conversation persistence use cases (cadrage « persistance conversationnelle », //! ARCHITECTURE §19, lot P6). //! //! Where [`crate::agent::lifecycle`] owns the *runtime* of an agent (spawn, PTY, //! sessions), this module owns the **durable conversational memory** of a //! conversation (paire) : the canonical append-only log and its incremental //! handoff. The single use case here, [`RecordTurn`], materialises the //! **end-of-turn checkpoint** (D19-5) by talking **only** to the three driven/driving //! ports of §19 ([`domain::ConversationLog`], [`domain::HandoffStore`], //! [`domain::HandoffSummarizer`]) — never to a concrete adapter. //! //! This is the **isolated logic** of P6 (lot P6a) : no wiring to the orchestrator, //! the PTY or `app-tauri` (that is P6b). It is fully testable with in-memory fakes //! of the three ports. mod paginate; mod record; mod rotate; pub use paginate::{ ConversationArchiveProvider, ReadConversationPage, ReadConversationPageInput, TurnPage, TurnSource, TurnView, }; pub use record::RecordTurn; pub use rotate::{RotateConversationLog, RotateConversationLogInput};