Files
ruv 34f11dbd46 docs(spec): bound signatureBase64 to the exact Ed25519 base64 length
The receipt and anchor-record schemas accepted any length of base64
(^[A-Za-z0-9+/]+={0,2}$), so oversized garbage passed structural
validation. An Ed25519 signature is exactly 64 bytes — 88 base64
characters with two padding chars — so the pattern is now
^[A-Za-z0-9+/]{86}==$, consistent with the fixed-width contentId and
seedHex patterns elsewhere in the schemas. The promotion-commit schema
carries no signature field (commits are unsigned in ADR-322C) and is
unchanged.

All four example fixtures re-validated against the tightened schemas
with Ajv 2020 strict; a 4KB-garbage-signature negative control is now
rejected.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_012Jib2gQyJpqCoo2xYAbb4X
2026-08-20 08:37:26 -04:00
..