> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Run Journal • AI Agent SDK

> RunJournal: Append-only, restart-safe run-state journal backed by SQLite.

# RunJournal

> Defined in the [**journal**](https://praison.ai/docs/sdk/reference/praisonaiagents/modules/journal.md) module.

AI Agent

Append-only, restart-safe run-state journal backed by SQLite.

Thread-safe: a single re-entrant lock guards a shared connection opened with
`check_same_thread=False`, mirroring :class:`~praisonaiagents.runs.
sqlite_ledger.SQLiteRunLedger`.

## Constructor

**db\_path** `Optional[str]`

No description available.

## Methods

> [card] [open\_run()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/RunJournal-open_run.md)
>
> Register `run_id` as `running` (idempotent).

> [card] [set\_checkpoint()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/RunJournal-set_checkpoint.md)
>
> Bind the latest files checkpoint to `run_id` for resume.

> [card] [close\_run()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/RunJournal-close_run.md)
>
> Mark `run_id` terminal so it is no longer resumed on restart.

> [card] [delete\_run()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/RunJournal-delete_run.md)
>
> Remove `run_id` and all its journal events.

> [card] [run\_meta()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/RunJournal-run_meta.md)
>
> Return the :class:`RunMeta` for `run_id` or `None` if unknown.

> [card] [interrupted\_runs()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/RunJournal-interrupted_runs.md)
>
> Return ids of runs still `running` — resume candidates on restart.

> [card] [append()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/RunJournal-append.md)
>
> Append `ev` to the journal (idempotent on `run_id/seq/kind`).

> [card] [events()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/RunJournal-events.md)
>
> Return all journal events for `run_id` ordered by `(seq, kind)`.

> [card] [replay\_index()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/RunJournal-replay_index.md)
>
> Return a `(seq, kind): payload` lookup for memoised replay.

> [card] [last\_iteration()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/RunJournal-last_iteration.md)
>
> Return the highest journalled iteration index, or `None`.

> [card] [assert\_replay\_order()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/RunJournal-assert_replay_order.md)
>
> Determinism guardrail: fail loud if replay diverges from the journal.

> [card] [close()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/RunJournal-close.md)
>
> Close the underlying database connection.

## Source

> [card] [View on GitHub](https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-agents/praisonaiagents/runtime/journal.py#L170)
>
> `praisonaiagents/runtime/journal.py` at line 170


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.