1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//! Intent event log (`<workspace>/.grex/events.jsonl`).
//!
//! The event log is an **append-only JSONL log** of [`Event`]s. The current
//! state of each pack is derived by folding the log into a
//! `HashMap<PackId, PackState>` via [`fold::fold`].
//!
//! # Why a log, not a snapshot?
//!
//! * Intent is preserved (every `add`/`update`/`rm` is traceable).
//! * Append writes are atomic at the syscall level for small lines.
//! * Crash recovery: a torn trailing line can be discarded.
//!
//! Compaction ([`compact::compact`]) periodically rewrites the log from the
//! folded state to bound its size; this is an atomic temp+rename.
//!
//! # Path convention (v2.0.0)
//!
//! The canonical event-log path is `<workspace>/.grex/events.jsonl`. This
//! supersedes the v1.x `<workspace>/grex.jsonl` location. v1.x event logs
//! are auto-migrated by [`ensure_event_log_migrated`] on first access.
pub use ;
pub use compact;
pub use ManifestError;
pub use ;
pub use fold;
pub use ;