Uses temporary records and journal rollback to protect against ordinary I/O failures, but does not fsync files or directories. This store also does not coordinate concurrent access across processes; callers must serialize reads and writes for each conversation.
Super class
ConversationStore -> FileConversationStore
Methods
Inherited methods
FileConversationStore$new()
Create a new file-based conversation store.
Usage
FileConversationStore$new(dir = NULL)FileConversationStore$list()
All conversations in partition, newest-first by
created_at, read from one record.json per conversation directory
on disk.
FileConversationStore$get()
The full conversation record for id in partition,
reassembled from record.json, turns.jsonl, and ui.jsonl.
FileConversationStore$put()
Upsert record into partition, appending new turns and
UI data to turns.jsonl/ui.jsonl and rewriting record.json.
Arguments
partitionA
conversation_partition().recordA conversation record, in the same shape returned by
get().
FileConversationStore$delete()
Remove the conversation id from partition by deleting
its directory. Missing ids are a no-op.