oc_chat
Loading...
Searching...
No Matches
persistence.py File Reference

Go to the source code of this file.

Classes

Namespaces

namespace  oc_chat
namespace  oc_chat.core
namespace  oc_chat.core.persistence

Functions

str oc_chat.core.persistence.fs_safe_name (str name)
Path oc_chat.core.persistence._ensure_dir (Path path)
Path oc_chat.core.persistence._sessions_root (str base=DEFAULT_SESSIONS_DIR)
Path oc_chat.core.persistence._named_session_dir (str name, str base=DEFAULT_SESSIONS_DIR)
list[Path] oc_chat.core.persistence._name_lookup_dirs (str name, str base=DEFAULT_SESSIONS_DIR)
Path oc_chat.core.persistence._session_dir (str name, str base=DEFAULT_SESSIONS_DIR)
Path oc_chat.core.persistence._archive_dir (str name, str base=DEFAULT_SESSIONS_DIR)
Path oc_chat.core.persistence._legacy_dir (str base=DEFAULT_SESSIONS_DIR)
str oc_chat.core.persistence._now_stamp ()
str oc_chat.core.persistence._now_stamp_compact ()
str oc_chat.core.persistence._stamp_from_mtime (Path p)
str oc_chat.core.persistence._stamped_name (str session_name, str kind, str ext="json", str|None stamp=None)
str oc_chat.core.persistence._hash_file (Path path)
bytes oc_chat.core.persistence._strip_bom (bytes data)
dict oc_chat.core.persistence._read_json_strip_bom (Path path)
Path oc_chat.core.persistence._glob_latest (Path session_dir, str kind, str ext="json")
None oc_chat.core.persistence._archive_kind (Path session_dir, str session_name, str kind, str sessions_dir=DEFAULT_SESSIONS_DIR)
str oc_chat.core.persistence._canonical_session_name (ChatSession session)
str oc_chat.core.persistence.save_session_metadata (ChatSession session, str sessions_dir=DEFAULT_SESSIONS_DIR)
Path oc_chat.core.persistence._resolve_record_path (str name_or_path, str kind, str sessions_dir=DEFAULT_SESSIONS_DIR)
str oc_chat.core.persistence.canonical_record_locator (Path path)
LoadedSessionMetadata oc_chat.core.persistence.load_session_metadata_located (str name_or_path, str sessions_dir=DEFAULT_SESSIONS_DIR)
bool oc_chat.core.persistence.mark_record_superseded (str old_name, str new_name, str sessions_dir=DEFAULT_SESSIONS_DIR)
dict oc_chat.core.persistence.load_session_metadata (str name_or_path, str sessions_dir=DEFAULT_SESSIONS_DIR)
str oc_chat.core.persistence.save_chat_log (ChatSession session, str sessions_dir=DEFAULT_SESSIONS_DIR)
dict oc_chat.core.persistence.load_chat_log (str name_or_path, str sessions_dir=DEFAULT_SESSIONS_DIR)
None oc_chat.core.persistence.save_all (ChatSession session)
str oc_chat.core.persistence.export_markdown (ChatSession session, str|None filepath=None, str sessions_dir=DEFAULT_SESSIONS_DIR)
str oc_chat.core.persistence.export_html (ChatSession session, str|None filepath=None, str|None sessions_dir=None, str code_theme="monokai")
Path oc_chat.core.persistence.save_tool_artifact (str session_name, str tool_name, str text, str|None sessions_dir=None)
Path|None oc_chat.core.persistence.find_latest_artifact (str session_name, str|None sessions_dir=None)
list[dict] oc_chat.core.persistence.list_sessions (str sessions_dir=DEFAULT_SESSIONS_DIR)
bool oc_chat.core.persistence.session_exists (str name, str sessions_dir=DEFAULT_SESSIONS_DIR)
bool oc_chat.core.persistence._is_variable_context_message (dict message)
list[int] oc_chat.core.persistence._conversation_indexes (list[dict] messages)
list[str] oc_chat.core.persistence._tool_call_ids (dict message)
bool oc_chat.core.persistence._message_has_content (dict message)
dict oc_chat.core.persistence._tail_report (str kind, list[int] tail_indexes, str summary)
dict|None oc_chat.core.persistence._tool_tail_report (list[dict] messages, list[int] indexes)
dict|None oc_chat.core.persistence.detect_incomplete_tail (list[dict] messages)
list[dict] oc_chat.core.persistence.apply_tail_recovery (list[dict] messages, Literal["drop", "keep", "fresh"] choice)
None oc_chat.core.persistence.write_clean_exit_marker (str sessions_dir=DEFAULT_SESSIONS_DIR)
dict|None oc_chat.core.persistence.read_crash_signal (str sessions_dir=DEFAULT_SESSIONS_DIR)
dict oc_chat.core.persistence.migrate_legacy_layout (str sessions_dir=DEFAULT_SESSIONS_DIR)

Variables

 oc_chat.core.persistence.DEFAULT_SESSIONS_DIR = os.environ.get("OC_CHAT_SESSIONS_DIR", "oc_chat/sessions")
str oc_chat.core.persistence.ARCHIVE_DIR_NAME = "archive"
str oc_chat.core.persistence.LEGACY_DIR_NAME = "legacy"
str oc_chat.core.persistence.CLEAN_EXIT_MARKER_NAME = ".oc_chat_clean_exit"
str oc_chat.core.persistence.FS_SAFE_PLACEHOLDER = "unnamed-session"
tuple oc_chat.core.persistence._FS_SEPARATORS = ("/", "\\")
str oc_chat.core.persistence._FS_RESERVED_CHARS = ':*?"<>|'
 oc_chat.core.persistence._FS_RESERVED_DEVICE_NAMES