Skip to main content

Module run

Module run 

Source
Expand description

RunStore — persistence for Run records (one kick of a Task).

Part of the issue #13 ID-hierarchy reconciliation: Blueprint -> Task -> Run -> Step -> Attempt. A RunId is minted server-side each time a crate::store::task::TaskRecord is kicked; it carries a lightweight trace of the steps dispatched during that kick (StepEntry) for observability, plus its own outcome status independent of the owning Task’s coarser status. A single Task can have N Runs over its lifetime (list_by_task).

Current scope:

  • InMemoryRunStore — process-volatile default.
  • SqliteRunStore — file-backed persistence via rusqlite-isle. step_entries is a JSON column, not normalized into its own table — this is a trace/observability artifact, not something queried relationally.
  • Other persistent backends (Git / mini-app / …) are future carries.

Re-exports§

pub use inmemory::InMemoryRunStore;
pub use sqlite::SqliteRunStore;

Modules§

inmemory
InMemoryRunStore — a process-volatile RunStore used by the current default.
sqlite
SqliteRunStore — SQLite-backed RunStore using [rusqlite-isle].

Structs§

RunContext
Pairs a RunId with the RunStore used to persist its trace.
RunRecord
One persisted Run row — one kick of a crate::store::task::TaskRecord.
StepEntry
One entry in a Run’s step trace — appended as the engine dispatches (and finishes) each step. Purely observational: no field here is consulted for flow control.

Enums§

RunStatus
Lifecycle status of a RunRecord — the outcome of one specific kick of a Task.
RunStoreError
Errors surfaced by a RunStore implementation.

Traits§

RunStore
Persistence interface for Run records — one kick of a Task, in the issue #13 ID hierarchy.