mirror of
https://github.com/ruvnet/ruflo.git
synced 2026-09-14 14:01:28 +08:00
34f11dbd46
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