diff options
| author | t <t@tjp.lol> | 2026-06-05 11:27:33 -0600 |
|---|---|---|
| committer | t <t@tjp.lol> | 2026-06-05 11:27:43 -0600 |
| commit | 03ac69658517a0054d2a573d1e1b60c1bfaaf977 (patch) | |
| tree | c38c4b009c98e96497db7482d04f803bf2ee78f9 /libpanto/src/root.zig | |
| parent | 003908344336cc13e74618291aa9f3af137f030f (diff) | |
Add pluggable SessionStore interface with FSJSONL + Null backends
Introduce a neutral persistence seam (session_store.zig) following the
{ptr, vtable} shape of the other libpanto seams. The interface traffics in
DiskMessage so non-JSONL backends (e.g. Postgres) can implement it.
- session_store.zig: SessionStore vtable (appendMessages, loadConversation,
sessionId, activeModel), LoadedSession{conversation, dangling_user},
re-exported disk types, and an FSJSONLStore alias.
- session_manager.zig: add store() wrapper + loadConversation() with
dangling trailing-user detection (excluded from the rebuilt conversation,
returned as dangling_user).
- null_store.zig: no-op backend, stateless singleton.
- root.zig: export session_store + null_store.
Phase 1+2 of docs/pluggable-session-store.md. Behavior-preserving; CLI not
yet rewired.
Diffstat (limited to 'libpanto/src/root.zig')
| -rw-r--r-- | libpanto/src/root.zig | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libpanto/src/root.zig b/libpanto/src/root.zig index 3f5549c..39797dd 100644 --- a/libpanto/src/root.zig +++ b/libpanto/src/root.zig @@ -10,6 +10,8 @@ pub const tool_source = @import("tool_source.zig"); pub const tool_registry = @import("tool_registry.zig"); pub const session = @import("session.zig"); pub const session_manager = @import("session_manager.zig"); +pub const session_store = @import("session_store.zig"); +pub const null_store = @import("null_store.zig"); pub const pricing = @import("pricing.zig"); pub const compaction = @import("compaction.zig"); pub const image = @import("image.zig"); |
