Expand description
会话存储原语:落盘函数,全部吃 &Path,零 tauri 依赖。
供 [tauri_plugin_observer](Local 模式 self-obs 落盘)与
observer_server(HTTP 落盘)共用。
格式:recordings/<sessionId>/{session.json, windows.jsonl, segments/<label>#<n>.jsonl[.gz]}。
P9 起 segments 可选 gzip 落盘(.jsonl.gz),读路径按扩展名透明解压。
Structs§
- Write
Opts - segment 落盘选项。
gzip=true写.jsonl.gz(每批一个 gzip member,可追加)。
Functions§
- append_
events_ file - 追加事件到 segment 文件(plain JSONL,向后兼容)。
- append_
events_ file_ with - 追加事件到 segment 文件,按
WriteOpts决定是否 gzip。 - append_
lifecycle - create_
session - 建会话目录并写 session.json(meta 由调用方组装好)。
- finalize_
session - 结束会话:读回 session.json 补 endedAt 后覆写。
- now_ms
- read_
segment_ events - 读 segment 文件事件(gzip 感知:
.jsonl.gz用MultiGzDecoder,.jsonl直读)。 文件不存在或单行解析失败被跳过。 - read_
segment_ first_ line - 只读段文件首行(Meta 事件,含录制视口宽高)。
- read_
segment_ last_ line - 只读段文件最后一个非空行(尾事件的 timestamp 是会话结束时间的兜底依据,
见
crate::bundle::read_session_meta的段索引)。 - segment_
id_ from_ filename - 由文件名还原 segmentId:
web#1.jsonl.gz/web#1.jsonl->web#1。 - segment_
path - 定位段文件:优先
.jsonl.gz,回退.jsonl(与写侧扩展名一致)。