Skip to main content

magi_code/
sessions.rs

1//! Supported public session API: `SessionManager`, `Session`, session-ID validation, and the
2//! latest-session title helper. Storage, events, diagnostics, pruning, metadata, and mutation
3//! helpers remain crate-private implementation details.
4
5pub(crate) mod active_time;
6pub(crate) mod chat;
7#[cfg(unix)]
8mod discovery;
9pub(crate) mod effects;
10mod event;
11mod export;
12mod manager;
13mod metadata;
14pub(crate) mod preferences;
15pub(crate) mod progressive_summaries;
16mod prune;
17mod read;
18mod rewind;
19mod scope;
20mod store;
21pub(crate) mod task_scope;
22pub(crate) mod tool_display;
23pub(crate) mod usage;
24pub(crate) mod usage_recorder;
25mod write;
26mod writer;
27
28pub(crate) use event::SessionEvent;
29#[cfg(unix)]
30pub(crate) use manager::SessionWriterBusy;
31pub use manager::{Session, SessionManager};
32pub use metadata::latest_session_title;
33pub(crate) use metadata::session_user_input_count;
34pub use read::validate_session_id;
35pub(crate) use read::{BoundedReadError, SessionReadDiagnostic};
36pub(crate) use write::record_session_compaction_at_byte_offset_with_snapshot;
37pub(crate) use write::{
38    SESSION_TITLE_MAX_CHARS, record_session_event, record_session_title, sanitize_session_title,
39};
40pub(crate) use write::{
41    SessionAppendBudget, SessionAppendError, SessionAppendOutcome, try_record_session_event_batch,
42};
43
44pub(crate) use event::{SessionEventKind, TurnStatus, TurnStatusPayload};
45pub(crate) use export::{
46    SessionExportReport, export_destination, export_session, export_session_with_cancellation,
47};
48pub(crate) use metadata::{
49    SessionDiagnosticOperation, SessionTitleMetadata,
50    latest_valid_compaction_checkpoint_for_replay, report_session_diagnostic,
51    session_title_metadata,
52};
53pub(crate) use prune::parse_prune_sessions_days;
54pub(crate) use read::{MAX_METADATA_VISIT_BYTES, MAX_METADATA_VISIT_LINES, SessionReadStats};
55pub(crate) use scope::resolve_session_scope_path;
56#[cfg(unix)]
57pub(crate) use store::SESSION_ROOT_MODE;
58pub(crate) use store::{SESSION_FILE_MODE, prepare_session_root};
59#[cfg(unix)]
60pub(crate) use store::{apply_repair_plan, discover_repair_plan};
61pub(crate) use write::{CompactionRotationError, sanitize_compaction_summary};