Skip to content

feat: add evidence receipt hash chain prototype - #279

Closed
mason5052 wants to merge 1 commit into
vxcontrol:mainfrom
mason5052:codex/issue-235-evidence-chain-v1
Closed

feat: add evidence receipt hash chain prototype#279
mason5052 wants to merge 1 commit into
vxcontrol:mainfrom
mason5052:codex/issue-235-evidence-chain-v1

Conversation

@mason5052

Copy link
Copy Markdown
Contributor

Summary

  • add a disabled-by-default Evidence Receipts v1 prototype for toolcall completion
  • write hash-chain JSONL receipts under <DATA_DIR>/flow-<flow_id>/evidence/receipts.jsonl
  • include toolcall provenance metadata plus argument/result hashes without storing raw args or raw results
  • document v1 as hash-chain-only; Ed25519 signing and report bundle export are deferred

Validation

  • go test ./pkg/tools/...
  • go test ./pkg/config/...
  • git diff --cached --check

Refs #235

sirozha pushed a commit that referenced this pull request Jun 18, 2026
Disabled-by-default audit feature (EVIDENCE_RECEIPTS_ENABLED): appends a
hash-chained JSONL receipt per finished/failed toolcall under
<DATA_DIR>/flow-<id>/evidence/receipts.jsonl, recording toolcall
provenance plus SHA-256 hashes of args/result (no raw content).

Integration adapted to current main: the original PR built the receipt
from a database.Toolcall returned by ce.db.UpdateToolcall*Result, which
the executor no longer uses after the ToolCallLogProvider (tclp) refactor.
Receipts are now built from the in-scope toolcall data at the tclp log
sites and recorded non-fatally, so a receipt failure is logged and never
fails an otherwise-successful toolcall.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@asdek

asdek commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

hey @mason5052
thank you for the PR and for the effort you put into this, the hash-chain receipts approach is well thought out.

however, this doesn't align with our current development direction. the provenance/audit functionality you're proposing is already fully covered by our ongoing Graphiti integration, so we won't need equivalent changes on the backend side for this.

I'll close this PR for now, but feel free to reach out if you'd like to discuss how this could tie into the Graphiti work instead.

@asdek asdek closed this Aug 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants