Skip to main content

observer_storage/
lib.rs

1//! 纯存储层:会话落盘原语 + 标注 + bundle 契约 + 读/列举/导入导出 + redact + 保留策略。
2//!
3//! 零 tauri 依赖,全部吃 `&Path`,供两方共用:
4//! - [`tauri_plugin_observer`](Local 模式 self-obs 落盘)
5//! - [`observer_server`](../../observer-server)(HTTP 服务,console 内嵌 / 独立二进制)
6//!
7//! 格式见 docs/架构/分析侧(平台布局结构、功能).md 与 docs/架构/bundle-规范.md:
8//! `recordings/<sessionId>/{session.json, windows.jsonl, segments/<label>#<n>.jsonl[.gz], annotations.jsonl}`
9
10pub mod annotations;
11pub mod bundle;
12pub mod redact;
13pub mod retention;
14pub mod storage;
15
16pub use annotations::{annotations_path, read_annotations, write_annotations};
17pub use bundle::{
18    build_export_bundle, import_bundle, import_bundle_content, list_sessions, merge_session_meta,
19    parse_bundle, read_segment_json, read_session, read_session_meta, read_session_signals_json,
20    unique_id, validate_segment_id, validate_session_id, write_import_bundle, BUNDLE_FORMAT,
21    BUNDLE_VERSION,
22};
23pub use redact::{redact_bundle, RedactConfig, RedactOpts};
24pub use retention::{enforce_retention, enforce_retention_protect, RetentionPolicy};
25pub use storage::{
26    append_events_file, append_events_file_with, append_lifecycle, create_session, finalize_session,
27    now_ms, read_segment_events, read_segment_first_line, read_segment_last_line,
28    segment_id_from_filename, segment_path, WriteOpts,
29};