//! App-side per-conversation runner: wraps a [`crate::core::ConversationHandle`]
//! together with a [`crate::app::PhaseTimer`] and the per-proposal auto-vote
//! timer registry. Coordinator methods compose state-machine transitions
//! with phase-timer anchors so callers update both in one call.
//!
//! [`SessionRunner`] is defined in [`runner`]; per-conversation method
//! bodies (proposal submission, voting, inbound dispatch, freeze ticks,
//! steward housekeeping, query getters) live in sibling modules and extend
//! `SessionRunner` via additional `impl` blocks.
pub use CreatorVote;
pub use PendingJoinTick;
pub use DispatchOutcome;
pub use LockExt;
pub use SessionRunner;