session::append
Append one entry (idempotent on entry_id); fires session::message-added.
Durable, reactive, branching store of typed conversation entries with six emitted trigger types.
Append one entry (idempotent on entry_id); fires session::message-added.
Append several message entries in order; fires session::message-added per entry.
Create a session at status idle; fires session::created.
Delete a session and its entries; fires session::deleted.
Idempotently ensure a session with a given id exists; fires session::created only when it creates.
Copy history up to an entry into a new session (copy-on-fork); fires session::created.
Read one session's metadata (null when unknown).
Read a single entry by id (null when unknown).
List sessions with pagination, ordering, and status/metadata filters.
Load the active path as messages with entry ids, oldest first; pagination and role filtering.
Move the active path to end at a given entry (branch switch).
Update a session's title/description/metadata; fires session::meta-updated.
Set status idle/working/done/error; fires session::status-changed (no-op when unchanged).
Internal store protocol: clear a session's active leaf pointer.
Internal store protocol: delete every entry of a session.
Internal store protocol: delete one SessionMeta.
Internal store protocol: read a session's active leaf pointer.
Internal store protocol: read one SessionEntry (null when unknown).
Internal store protocol: read one SessionMeta (null when unknown).
Internal store protocol: list every entry of a session.
Internal store protocol: list every SessionMeta.
Internal store protocol: ingest a bridged instance's event envelopes and fan them out to local subscribers and every attached bridge.
Internal store protocol: write one SessionEntry.
Internal store protocol: write one SessionMeta.
Internal store protocol: move a session's active leaf pointer.
Replace a message entry's content (optimistic concurrency via expected_revision); fires session::message-updated.
A new session exists (via session::create or session::fork).
A session and its entries were removed.
A message entry was appended to a session.
A message entry's content changed (e.g. streaming deltas).
A session's title/description/metadata changed.
A session's status changed (idle/working/done/error).
Internal: event-envelope feed for bridged session-manager instances. Not for direct consumption — bind the six public session::* types instead.