Skip to content

feat(agent-journal): canonicalize evaluation receipts#127

Merged
feniix merged 2 commits into
mainfrom
feat/agent-journal-evaluation-receipts
Jul 13, 2026
Merged

feat(agent-journal): canonicalize evaluation receipts#127
feniix merged 2 commits into
mainfrom
feat/agent-journal-evaluation-receipts

Conversation

@feniix

@feniix feniix commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Summary

Future evaluation evidence can now be bound through deterministic RFC 8785 JSON and SHA-256 over the exact canonical UTF-8 bytes. Non-I-JSON values, proxies, accessors, hidden/symbol/inherited data, cycles, sparse arrays, custom prototypes, and unstable exotic inputs fail closed.

Receipt generation also has frozen depth, node, collection, string, and output ceilings, preventing stack exhaustion or unbounded memory work. The module remains evaluation-only, absent from product registration and package tarballs, and carries no acceptance semantics.

Validation

  • Initial RED: canonical receipt module absent
  • Security RED: proxies accepted and resource ceilings absent
  • Agent Journal suite: 248 tests passed
  • Coverage: 86.57% lines, 84.47% statements, 91.47% functions, 80.07% branches
  • npm run check:ci
  • package build and dry-run leak scan
  • specdocs_validate
  • independent RFC review: Appendix B number vectors and exact boundary vectors passed
  • independent security matrix: 32/32 adversarial cases passed; proxies executed zero traps; no raw exceptions
  • independent evaluation-integrity review: no blockers

Compound Engineering
Pi

feniix added 2 commits July 13, 2026 12:38
Add strict RFC 8785 JSON canonicalization and UTF-8 SHA-256 receipts for
future provenance graphs, rejecting non-I-JSON and exotic mutable input.

RED: npx vitest run packages/pi-agent-journal/__tests__/evaluation-receipts.test.ts
Failure: the canonical receipt module was absent.
Reject proxies before traps execute and freeze depth, node, collection,
string, and output ceilings so receipt generation fails closed under
adversarial inputs without unbounded allocation or stack overflow.

RED: npx vitest run packages/pi-agent-journal/__tests__/evaluation-receipts.test.ts
Failure: object/array proxies were accepted and resource limits were absent.
@feniix
feniix merged commit c2d0104 into main Jul 13, 2026
3 of 4 checks passed
@feniix
feniix deleted the feat/agent-journal-evaluation-receipts branch July 13, 2026 15:52
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.

1 participant