Skip to main content

entelix_session/
lib.rs

1//! # entelix-session
2//!
3//! Session-as-event-SSoT (invariant 1). Defines [`SessionGraph`] with
4//! `events: Vec<GraphEvent>` as the only durable audit truth, plus
5//! fork semantics and archival watermarks. The persistent companion
6//! is the [`SessionLog`] trait — concrete impls live in
7//! `entelix-persistence`.
8//!
9//! Per F1 mitigation, this module is **distinct from** the runtime
10//! [`entelix_core::events::EventBus`]: the bus is fire-and-forget
11//! ephemeral pub-sub, this module is the durable replay source.
12
13#![cfg_attr(docsrs, feature(doc_cfg))]
14#![doc(html_root_url = "https://docs.rs/entelix-session/0.5.3")]
15#![deny(missing_docs)]
16
17mod audit_sink;
18mod compaction;
19mod event;
20mod log;
21mod session_graph;
22
23pub use audit_sink::SessionAuditSink;
24pub use compaction::{
25    CompactedHistory, Compactor, HeadDropCompactor, ToolPair, Turn, messages_char_size,
26    messages_to_events,
27};
28pub use event::GraphEvent;
29pub use log::{InMemorySessionLog, SessionLog};
30pub use session_graph::SessionGraph;