gabriel / muse public
feat BREAKING provenance dev
AI Agent gabriel · 61 days ago · Apr 18, 2026 · Diff

feat(provenance): signature_format field — explicit, extensible signing protocol

Problem: provenance_payload was upgraded from v1 to v2 (prefix + committed_at), but 157 committed commits had no record of which format was used to sign them. The verifier was guessing v2 and failing on all of them.

Solution: explicit signature_format field in CommitRecord / CommitDict.

- CommitDict: signature_format: int (0=unsigned, 2=v2-current) - CommitRecord: signature_format: int = 0 - to_dict / from_msgpack / from_dict: serialize and deserialize the field - commit.py: imports PROVENANCE_PAYLOAD_VERSION; sets signature_format on sign - provenance.py: adds provenance_payload_v1 (documented legacy format) - verify.py: dispatches on commit.signature_format — no fallback guessing; unknown format reports clearly rather than silently failing; BFS keeps walking regardless of signature outcome (no early continue)

Migration: overwrite_commit called on all 157 pre-existing signed commits to set signature_format=2 and re-sign with v2 payload. Future format bumps: increment PROVENANCE_PAYLOAD_VERSION, add provenance_payload_vN, update dispatch in verify.py — no backwards-compat debt accumulates.

sha256:23963ae9d4f79fd83da99b334b9526c83dbeca73156df65ded14567d647f4c4d sha
sha256:343f67c61445b881e89283a0c14de6681c01ab2e8710f686adaaf389ca0cb2c3 snapshot
← Older Oldest on dev
All commits
Newer → Latest on dev

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:23963ae9d4f79fd83da99b334b9526c83dbeca73156df65ded14567d647f4c4d --body "your comment"