Oko/Docs

Command reference

oko index compare

Whether the operator messages Oko keeps for a session are the ones Transcript Lake holds, turn by turn: coverage counts, this compares content.

Invocation#

Command
oko index compare (--session ID ... | --all)

Inputs and options#

  • --session ID, repeatable, names the sessions to compare; --all compares every session the catalogue holds. One of the two is required, and not both.

Output and state effect#

  • Reads only. Each session's stored operator messages are reconciled with Lake's through the same reconciliation the task readings trust before reading a session: each turn by its identity when both carry one, otherwise by its ordinal, its words and its time. Prints `{sessions, differing, compared}`; each compared entry is `{sessionId, agrees, stored, lake, source}` when the store and Lake agree, or `{sessionId, agrees: false, stored, cause}` naming the turn that differs, the session Lake no longer holds, a store that keeps none of what Lake holds, or a store that cannot be read. Exits non-zero when any session disagrees, so a caller's status says whether the catalogue's content is Lake's.
  • The native API's index `compare` ({sessions} or {all: true}) answers the same document without failing on a disagreement; Oko Desktop's Search data screen has a Compare with Lake toolbar button that runs it for every session and lists each differing conversation with its cause.

Refusals and safe exits#

  • `oko index compare needs --session ID (repeatable) or --all`, `oko index compare takes --session ID or --all, not both`, an unknown flag, and the shared database refusals of `list`.
  • `<n> of <m> sessions do not agree with Transcript Lake; each one's cause is in the answer` after printing the answer.

CLI reference#