gabriel / muse public
feat BREAKING task/migrate-signing #2 / 2
AI Agent gabriel · 150 days ago · Apr 24, 2026 · Diff

feat: add progressive re-signing to muse code migrate

- migrate() takes optional private_key; when supplied every commit is re-signed with a fresh Ed25519 sig over its new v2 commit ID - old signatures (over old IDs) are replaced — not preserved - signer_public_key is bound into the v2 commit ID before signing - CLI loads signing identity from repo hub config, then falls back to each configured remote URL — repos without [hub] url still sign - unsigned path remains valid for git-onboarding users without keys - MigrateResult gains commits_signed field - 5 new tests covering signed migration, signer_public_key binding, dry-run skip, and all-commits-signed count - _verify_commit_id docstring updated: repo_id/author/signer_public_key are NOW included in the commit ID (stale 'by design' comment removed)

sha256:bb9e7203e470365c85ba1d82ab3f45b5a8d0bc330018a117a82ea305959fc385 sha
+8 ~8 −2 symbols
sha256:0db022a2773c788a3907449af9cc76d717ab15eda2c85992db45128b84c6a7f7 snapshot
+8
symbols added
~8
symbols modified
−2
symbols removed
0
dead code introduced
Semantic Changes 18 symbols
~ muse/cli/commands/migrate.py .py 1 symbol modified
~ run
~ muse/core/migrate.py .py 1 symbol added, 2 symbols removed, 4 symbols modified
_SEP variable variable _SEP L41–41
split_id import import split_id L28–28
+ TYPE_CHECKING import import TYPE_CHECKING L35–35
~ muse/core/store.py .py 1 symbol modified
~ tests/test_code_migrate.py .py 7 symbols added, 2 symbols modified
+ test_json_commits_signed_zero_when_unsigned method method test_json_commits_signed_zero_when_unsigned L843–848
+ TestResigning class class TestResigning L861–956
+ test_dry_run_skips_signing method method test_dry_run_skips_signing L944–956
+ test_signed_migrate_all_commits_signed method method test_signed_migrate_all_commits_signed L895–910
+ test_signed_migrate_produces_valid_signatures method method test_signed_migrate_produces_valid_signatures L862–893
+ test_signed_migrate_signer_public_key_bound_in_commit_id method method test_signed_migrate_signer_public_key_bound_in_commit_id L912–942
+ _generate_test_key function function _generate_test_key L856–858

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:bb9e7203e470365c85ba1d82ab3f45b5a8d0bc330018a117a82ea305959fc385 --body "your comment"