Oko/Docs

Command reference

oko tasks owed

What a build still waits on, in one shared-database read: the open tasks that carry no commit or report as their repair, as the newest control pass recorded them, and the open defects with no recorded repair.

Invocation#

Command
oko tasks owed [--json]

Inputs and options#

  • No selection: the answer covers every session the newest control pass read. --json selects structured output.

Output and state effect#

  • Each control pass of the Oko service (oko tasks control) settles every open session; when its handover stage ends it keeps, in its `oko_control_passes` row, every open task of those sessions whose proof names neither a commit nor a report, as `owed`: `{ sessionId, ordinal, id, text }`. oko tasks owed reads the newest row that carries `owed` and answers `{ passAt, ageSeconds, tasks, defects }`: the pass's time, how long ago that was, those tasks, and the short identities of the open defects the register holds with no repair revision.
  • It settles nothing itself, so it answers in one request where `oko tasks --open --read-only --owed` reads and settles the transcript and annotations of every session holding a task. Tama's build gate (block-one-off-repairs) reads it for that reason: the gate runs inside a hook the harness ends after a fixed budget, and settling every session there made every build end in the harness's refusal instead of the gate's own verdict. `ageSeconds` says how old the reading is; a task given after that pass appears in the next one.
  • With OKO_TRACE_REQUESTS=1 the read writes `oko phase: read the newest control pass started` and its duration. The real journey `cargo test --manifest-path rust/Cargo.toml --test tasks-owed -- --ignored --nocapture` runs it on a signed-in host and checks every listed task against its own session's settled ledger: a task that ledger still holds open must carry no repair.

Refusals and safe exits#

  • No control pass that recorded `owed` yet: `no control pass has recorded the owed tasks yet: the Oko service's control pass (oko tasks control) records them when its handover stage ends; oko tasks control --status says where the current pass stands`. It never answers an empty list for a pass it could not read.
  • A failed database connection or read exits unsuccessfully with the request's own refusal; a pass row without a time, with a time that is not a time, or with `owed` that is not a list is refused naming the row.

CLI reference#