Skip to content
Docs navigation: RightNow Agent / Receipts

Receipts

DocsRightNow AgentReceipts Updated

Release status

RightNow Agent, the terminal coding agent, is paused. Its guides stay online as reference.

A receipt records the verified result of a bounded RightNow Agent transaction, checked against a tool result or the filesystem, never against assistant narration. A failed postcondition writes a failure record instead. Records come from one-call transactions ([rightnow] one_call_transactions, shipped on) and, with act_first (shipped off), from project builds.

Storage

Text
<RIGHTNOW_HOME>/receipts/<workspace-key>/<UUID>.receipt.json
<RIGHTNOW_HOME>/receipts/<workspace-key>/<UUID>.failure.json

Pretty-printed JSON, written atomically; on macOS and Linux the directory is 0700 and each file 0600.

Record format

Hashes are lowercase hexadecimal with a sha256: prefix.

FieldValue
schemarightnow.transaction.v1
record_typereceipt or failure
receipt_id / failure_idGenerated UUIDv7
transaction_id, session_idCopied from the runtime context
started_at, completed_atUTC RFC 3339, millisecond precision
workspace_rootCanonical workspace path, forward slashes
runtimemodel, config_sha256 (hash of the full effective sampling config), and config: api_backend, base_url, max_completion_tokens, temperature, top_p, context_window, reasoning_effort, stream_tool_calls, plus header and query names without their values
summaryReceipt only: the verified-effect line
claimReceipt only: one claim, below
attempted, expected, observed, reasonFailure record only: the failed postcondition

Claims

claim.kind selects the evidence fields:

kindFields
file_mutationpath (workspace-relative), operation (created, replaced, wrote, patched), before (exists, bytes, sha256), after (bytes, sha256), change (replacement_count or unified_diff)
command, testcommand, exit_code, stdout and stderr (bytes, sha256 each)

Verify a file receipt

From the workspace root, with a saved record.receipt.json, on Windows, macOS, or Linux:

Text
rightnow receipt verify ./record.receipt.json --workspace . --json
  • --workspace <DIR> checks that root instead of the recorded workspace_root.
  • --json prints receipt_id, verified, path, expected, observed, and message instead of a PASS or FAIL line.
  • Only a file-mutation receipt verifies: its target must still match the recorded byte count and SHA-256. Command and test receipts are historical execution evidence with no current file state.
ResultText outputExit
MatchPASS: `<path>` still matches receipt <receipt-id>.0
ChangedFAIL: `<path>` drifted: expected <bytes> bytes / <sha256>, observed <bytes> bytes / <sha256>.1
MissingFAIL: `<path>` is missing; receipt <receipt-id> no longer verifies.1
Cannot checkError: <reason>1

Receipt loading, schema, workspace, and path errors return before any result is printed: an unreadable file, invalid JSON, a failure record, another schema, a command or test receipt, or a target outside the workspace. A failed check, in either output mode, ends with Error: receipt verification failed on stderr.

rightnow · verify a receipt

Windows

# After a verified file creation
Created `<file>` (<bytes> bytes).
Receipt: <receipt-path>

PS> rightnow receipt verify "<receipt-path>"
PASS: `<file>` still matches receipt <receipt-id>.