8000 fix(activation): bind digest to typed request metadata by jangtrinh · Pull Request #226 · jangtrinh/design-os · GitHub
[go: up one dir, main page]

Skip to content

fix(activation): bind digest to typed request metadata - #226

Merged
jangtrinh merged 1 commit into
mainfrom
jangtrinh/fix-225-activation-request-digest
Aug 26, 2026
Merged

jangtrinh merged 1 commit into
mainfrom
jangtrinh/fix-225-activation-request-digest

Conversation

@jangtrinh
Copy link
Copy Markdown
Owner

Summary

  • Bind activation receipt digests to the complete typed request: kind, version, raw request, requested surface, input kind, and selection evidence.
  • Canonicalize object key ordering while preserving the existing sha256: receipt format.
  • Use the same digest helper for receipt issuance and delivery-v2 replay, so metadata drift produces activation-request-drift.

Root cause

requestDigest previously hashed only rawRequest. A receipt could therefore retain the same digest after requestedSurface, inputKind, or selectionEvidence changed, allowing altered metadata to evade the intended drift check.

Verification

  • Red before fix: focused regression suite reproduced 6 failures across digest binding and delivery-v2 drift detection.
  • Focused tests: 27/27 passed.
  • Typecheck, lint, and build passed.
  • Full suite: 215 files passed; 3,731 tests passed; 10 skipped.
  • Knowledge check: 0 findings.
  • Independent review: no Critical or High findings.
  • Staged secret scan: no credential values found. requestDigest is a schema identifier, not a credential.
  • npm ci reported inherited audit advisories; dependency files are unchanged.

This change provides deterministic request-drift binding and replay integrity. It does not claim cryptographic authenticity or signing.

Closes #225

@jangtrinh
jangtrinh merged commit 64f9d57 into main Aug 26, 2026
4 checks passed
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.

fix: bind activation receipt digest to typed request metadata

1 participant

0