gabriel / muse public
BREAKING task/high2-remove-muse-agent-key #1 / 1
AI Agent gabriel · 162 days ago · Apr 17, 2026 · Diff

security: delete MUSE_AGENT_KEY — no backward compat (HIGH-2)

MUSE_AGENT_KEY (PEM bytes in env var) is gone. Env vars expose key material in /proc/<pid>/environ and process listings. The only supported injection mechanism is MUSE_AGENT_KEY_FD.

Deleted: - tests/test_signing_hd_seed.py — entire file tested removed mechanisms (MUSE_AGENT_HD_SEED, MUSE_AGENT_KEY); 9 of 27 were already failing

Cleaned (no references remain in source or docs): - muse/cli/commands/sign.py — docstring now lists MUSE_AGENT_KEY_FD as step 1 - muse/core/keypair.py — removed stale env var mention from docstring - docs/agent-guide.md — updated injection description to fd-based - docs/agent-provenance.md — rewrote ephemeral key section + resolution order - tests/test_agent_key_fd.py — removed III5 warning test (no backward compat)

sha256:c31c80786c5a51a2332a31b0e67339e2f9e09ef1d65b9b849a9264570f6c2105 sha
+4 ~12 −47 symbols
sha256:64bcf98cf9e2b58b0e208782f02593b2fd2bf7d8a70fcfc24c141f4ad1526c9c snapshot
+4
symbols added
~12
symbols modified
−47
symbols removed
0
dead code introduced
Semantic Changes 63 symbols
~ tests/test_signing_hd_seed.py .py 43 symbols removed
− TestDataIntegrity class class TestDataIntegrity L272–316
− test_handle_preference_order method method test_handle_preference_order L301–316
− test_public_key_matches_direct_derivation method method test_public_key_matches_direct_derivation L275–289
− test_with_padding_variants method method test_with_padding_variants L291–299
− TestDocstrings class class TestDocstrings L431–452
− test_get_signing_identity_has_resolution_order method method test_get_signing_identity_has_resolution_order L442–445
− test_get_signing_identity_mentions_hd_seed method method test_get_signing_identity_mentions_hd_seed L434–440
− test_get_signing_identity_mentions_muse_agent_key method method test_get_signing_identity_mentions_muse_agent_key L447–452
− TestGetSigningIdentityHdSeed class class TestGetSigningIdentityHdSeed L94–176
− test_hd_seed_takes_priority_over_muse_agent_key method method test_hd_seed_takes_priority_over_muse_agent_key L145–176
− test_result_handle_defaults_to_agent method method test_result_handle_defaults_to_agent L115–123
− test_result_handle_falls_back_to_agent_id_param method method test_result_handle_falls_back_to_agent_id_param L135–143
− test_result_handle_from_muse_agent_handle method method test_result_handle_from_muse_agent_handle L125–133
− test_result_has_private_key method method test_result_has_private_key L107–113
− test_returns_signing_identity_when_hd_seed_set method method test_returns_signing_identity_when_hd_seed_set L97–105
− TestHdSeedDecode class class TestHdSeedDecode L58–86
− test_64_byte_seed_decodes_correctly method method test_64_byte_seed_decodes_correctly L61–65
− test_derive_identity_key_from_sub_seed method method test_derive_identity_key_from_sub_seed L73–78
− test_non_64_byte_seed_identified method method test_non_64_byte_seed_identified L67–71
− test_public_key_is_32_bytes method method test_public_key_is_32_bytes L80–86
− TestPerformance class class TestPerformance L324–348
− test_10_resolutions_under_5_seconds method method test_10_resolutions_under_5_seconds L338–348
− test_single_resolution_under_2_seconds method method test_single_resolution_under_2_seconds L327–336
− TestSecurity class class TestSecurity L356–423
− test_empty_hd_seed_skips_to_next_step method method test_empty_hd_seed_skips_to_next_step L383–408
− test_hd_seed_env_var_not_logged_at_debug method method test_hd_seed_env_var_not_logged_at_debug L410–423
− test_malformed_base64_ignored method method test_malformed_base64_ignored L372–381
− test_wrong_length_seed_ignored method method test_wrong_length_seed_ignored L359–370
− TestSignVerifyRoundtrip class class TestSignVerifyRoundtrip L184–234
− test_different_accounts_produce_different_signatures method method test_different_accounts_produce_different_signatures L199–216
− test_same_account_same_signature method method test_same_account_same_signature L218–234
− test_sign_and_verify method method test_sign_and_verify L187–197
− TestStress class class TestStress L242–264
− test_100_resolutions_all_return_identity method method test_100_resolutions_all_return_identity L245–252
− test_100_resolutions_all_same_pubkey method method test_100_resolutions_all_same_pubkey L254–264
− _TEST_MNEMONIC variable variable _TEST_MNEMONIC L29–32
− _encode_hd_seed function function _encode_hd_seed L48–50
− _make_hd_seed function function _make_hd_seed L40–45
− Ed25519PrivateKey import import Ed25519PrivateKey L23–23
− annotations import import annotations L17–17
− base64 import import base64 L19–19
− pytest import import pytest L22–22
− time import import time L20–20
~ docs/agent-provenance.md .md 4 symbols added, 4 symbols removed, 9 symbols modified
− Ephemeral agent key (in-memory, subprocess injection) section Ephemeral agent key (in-memory, subprocess injection) L83–95
− code[bash]@L87 variable variable code[bash]@L87 L87–91
− code[python]@L118 variable variable code[python]@L118 L118–134
− table@L185 section table@L185 L185–196
+ Ephemeral agent key (fd injection) section Ephemeral agent key (fd injection) L83–100
+ code[python]@L88 variable variable code[python]@L88 L88–96
+ code[python]@L123 variable variable code[python]@L123 L123–140
+ table@L191 section table@L191 L191–202
← Older Oldest on task/high2-remove-muse-agent-key
All commits
Newer → Latest on task/high2-remove-muse-agent-key

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