Skip to main content
Record is the project’s one persistent fact set. Its canonical SQLite file lives at .niceeval/record.sqlite. Run creation, in-progress aggregation, published Attempts, Attachments, Content, coordination state, and Invocation Sessions are all rows in the same ProjectDatabase. A Run is discoverable as soon as it is created. An Attempt becomes readable in a fixed PublicationCutoff after its atomic publication completes; the Run does not need to close first. Inspection, query, show, and view all respect this boundary. A published Attempt closure is immutable. Cache, credentials, and OS-user Service state are not Record facts.

Carry a Record

The canonical file itself can be copied or archived. Do not copy WAL, checkpoint, or staging files, and do not modify SQLite content after copying it. query and show treat a file selected by --record as hostile input. They read it only after exact current-schema, SQLite-integrity, and domain-invariant validation. A Record can still contain sensitive business data, so its sender owns permissions, redaction, and retention.

Read boundaries

Record does not own presentation, statistics, or comparisons. A fixed Inspection operation reads published facts within a PublicationCutoff, then passes the closed result to query, show, or first-party view. A read path cannot give external code the database, a reader, a Content handle, or SQL capability. See CLI to choose a read path.