Data
Cells
Per-cell state — status, provenance, cost, history.
A cell is the intersection of one row and one column. Every cell carries its own state. Cells are not bare values; they're records of the work that produced the value.
Cell state
| Field | Notes |
|---|---|
value | The typed output |
status | pending, running, succeeded, failed, retrying, skipped |
cost.credits | Credits consumed (0 for manual/formula) |
cost.provider_credits | Per-provider raw cost where applicable |
provenance.run_id | The run that produced this version |
provenance.inputs | Inputs sent to the producer (tool args, AI prompt template + bindings) |
provenance.outputs | Producer output useful for inspection and debugging |
error.code | Provider-defined or Oxygen error code on failure |
error.message | Human-readable error text |
updated_at | Timestamp of last value change |
For waterfall-style enrichment, provenance also includes per-attempt results showing provider order, outcome, and credit use.
Inspecting a cell
oxygen cells inspect <table-id> <row-id> <column> --jsonReturns the current cell state with full provenance.
Cell history
A cell keeps its full history — every value, every run, every error.
oxygen cells history <table-id> <row-id> <column> --jsonUseful when:
- A CRM sync started failing because the source value changed
- An AI column flipped a classification after a prompt update
- A waterfall result is suspect and you need to see which provider returned it
Row-level history
oxygen rows history <table-id> <row-id> --jsonReturns every cell write across all columns for one row, ordered by updated_at.
Rerunning one cell
oxygen columns rerun --table <table-id> --column <column-key> --row <row-id> --jsonRe-executes the column's producer for one row only. Useful for fixing a single bad cell without rerunning the column across the table.
Related
- Columns — what produces cell values.
- Runs — the run that owns a batch of cell writes.
- Observability — debugging from cell back to the run.