Skip to content

Rulvar API reference


Rulvar API reference / @rulvar/executor / EffectLedgerScan

Interface: EffectLedgerScan

Defined in: packages/executor/src/ledger.ts:278

What loadEffectLedger reads back from a JSONL ledger file.

Properties

PropertyTypeDescriptionDefined in
corruptCorruptLedgerLine[]Lines the scan refused to admit (RV607): unparseable interior bytes, invalid UTF-8, non-object JSON, a missing or mistyped required field, or an unknown phase. Populated only under tolerateCorrupt (the default scan throws LedgerCorruptionError instead). Empty on a healthy file.packages/executor/src/ledger.ts:301
intentsToolEffectIntent[]-packages/executor/src/ledger.ts:279
orphanedIntentsToolEffectIntent[]The reconciliation signal (RV501): every intent whose OWN attempt never got an outcome row. Pairing is exact: an outcome resolves the intent carrying the same attemptId (rows written before the id shipped pair by the legacy (idempotencyKey, startedAt) join), and an outcome of ANY class resolves only its own attempt. A sibling retry's outcome, ok or error, says nothing about THIS attempt, so it never clears it: closing the logical key belongs to the host reconciler, against the effect provider's receipt. For each orphan, look the key up with the effect's provider before retrying or compensating.packages/executor/src/ledger.ts:293
outcomesToolEffectRecord[]-packages/executor/src/ledger.ts:280
tornArtifactsTornLedgerArtifact[]Fragments the writer quarantined while repairing torn tails (RV502).packages/executor/src/ledger.ts:303
tornTail?{ preview: string; }A live unterminated, unparseable trailing fragment: the artifact of a crash mid-write no writer has repaired yet. Tolerated and named, never silent. (An unterminated line that PARSES but fails the shape is corruption instead: a torn prefix of the writer's own flat record can never parse, so such a line is foreign, not a crash artifact.)packages/executor/src/ledger.ts:312
tornTail.previewstring-packages/executor/src/ledger.ts:312