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
38
39
//! Shared JSONL parse/render for the line-based harnesses (claude_code, codex,
//! pi, campfire): one JSON record per line. The per-harness `TextCodec` impls
//! are then just "parse lines, extract meta" / "render lines".
use Path;
use Serialize;
use DeserializeOwned;
use crateResult;
/// Parse JSONL text into records, skipping blank and unparseable lines (a
/// single corrupt line shouldn't sink the whole session).
pub
/// Render records as newline-terminated JSON, one object per line.
pub
/// A session id derived from a file name (its stem) — the fallback a [`Store`]
/// uses when the session text carried no internal id.
///
/// [`Store`]: crate::Store
pub