gabriel / muse public
refactor BREAKING dev
AI Agent gabriel · 134 days ago · May 5, 2026 · Diff

refactor: route all types.py idioms through canonical helpers

Replace raw idioms with the functions defined in muse.core.types: - '0' * 64 (bare hex null) → NULL_COMMIT_ID - long_id('0' * 64) (prefixed null) → NULL_LONG_ID - base64.urlsafe_b64encode(raw).rstrip(b'=').decode() → b64url_encode(raw) - base64.urlsafe_b64decode(s + '==') → b64url_decode(s) - x.removeprefix('sha256:') → long_id(x, strip=True)

Also fix three test files where a previous script inserted a paths.py import line inside a multi-line parenthesized import block, causing SyntaxError. Moved the injected import to the correct location and replaced the nonexistent _REBASE_STATE_FILE_fn with rebase_state_path.

sha256:47840b61eb241a77c24b90e3328db76b1cdd6141e14ff3432efd9fb0f454e7ea sha
+104 ~1037 −15 symbols
sha256:8992519f383d30e6781e5e64e3fcf5183ec62fdc369ecd7fe6b6cd9b47723f60 snapshot
+104
symbols added
~1037
symbols modified
−15
symbols removed
0
dead code introduced
Semantic Changes 1156 symbols
~ muse/cli/commands/bridge.py .py 1 symbol added, 6 symbols modified
~ muse/cli/commands/commit.py .py 1 symbol added, 1 symbol removed, 3 symbols modified
_HEX64_RE variable variable _HEX64_RE L129–129
+ split_id import import split_id L40–40
~ muse/cli/commands/domain_cmd.py .py 1 symbol added, 1 symbol modified
+ load_json_file import import load_json_file L72–72
~ muse/cli/commands/path_cmd.py .py 1 symbol added, 1 symbol modified
+ load_json_file import import load_json_file L48–48
~ muse/cli/commands/sign.py .py 1 symbol added, 1 symbol removed, 4 symbols modified
base64 import import base64 L80–80
+ b64url_encode import import b64url_encode L84–84
~ muse/cli/commands/social.py .py 1 symbol modified
~ muse/core/hub_trust.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
long_id import import long_id L49–49
+ blob_id import import blob_id L49–49
~ muse/core/migrate.py .py 1 symbol added, 1 symbol removed, 8 symbols modified
base64 import import base64 L25–25
+ b64url_decode import import b64url_decode L40–40
~ muse/core/msign.py .py 2 symbols added, 1 symbol removed, 5 symbols modified
base64 import import base64 L55–55
+ b64url_decode import import b64url_decode L60–60
+ b64url_encode import import b64url_encode L60–60
~ muse/core/types.py .py 2 symbols modified
~ muse/plugins/code/stage.py .py 1 symbol added, 2 symbols modified
+ load_json_file import import load_json_file L36–36
~ tests/test_agent_json_schema.py .py 1 symbol added, 1 symbol removed, 5 symbols modified
~ tests/test_apply_pack_oserror_integrity.py .py 1 symbol added, 2 symbols modified
+ NULL_COMMIT_ID import import NULL_COMMIT_ID L37–37
~ tests/test_cli_inspect.py .py 1 symbol added, 5 symbols modified
+ NULL_COMMIT_ID import import NULL_COMMIT_ID L27–27
~ tests/test_cli_new_commands.py .py 1 symbol added, 6 symbols modified
~ tests/test_cmd_agent.py .py 1 symbol added, 1 symbol removed, 6 symbols modified
~ tests/test_cmd_agent_config.py .py 3 symbols added, 45 symbols modified
+ agent_md_path import import agent_md_path L69–69
+ config_toml_path import import config_toml_path L69–69
+ muse_dir import import muse_dir L69–69
~ tests/test_cmd_annotate_hardening.py .py 1 symbol added, 2 symbols modified
~ tests/test_cmd_auth_keygen_hd.py .py 1 symbol added, 1 symbol removed, 4 symbols modified
base64 import import base64 L57–57
+ b64url_decode import import b64url_decode L81–81
~ tests/test_cmd_auth_phase5.py .py 1 symbol added, 3 symbols modified
~ tests/test_cmd_blame_hardening.py .py 1 symbol added, 2 symbols modified
+ NULL_COMMIT_ID import import NULL_COMMIT_ID L55–55
~ tests/test_cmd_cat.py .py 1 symbol added, 3 symbols modified
~ tests/test_cmd_code_query.py .py 1 symbol added, 5 symbols modified
~ tests/test_cmd_init.py .py 7 symbols added, 76 symbols modified
+ config_toml_path import import config_toml_path L11–11
+ head_path import import head_path L11–11
+ muse_dir import import muse_dir L11–11
+ objects_dir import import objects_dir L11–11
+ ref_path import import ref_path L11–11
+ repo_json_path import import repo_json_path L11–11
+ tags_dir import import tags_dir L11–11
~ tests/test_cmd_plan_merge.py .py 1 symbol modified
~ tests/test_cmd_reflog_hardening.py .py 1 symbol added, 6 symbols modified
~ tests/test_cmd_sign.py .py 2 symbols added, 1 symbol removed, 4 symbols modified
base64 import import base64 L15–15
+ b64url_decode import import b64url_decode L25–25
+ b64url_encode import import b64url_encode L25–25
~ tests/test_cmd_sign_hardening.py .py 1 symbol added, 1 symbol removed, 1 symbol modified
base64 import import base64 L17–17
+ b64url_encode import import b64url_encode L24–24
~ tests/test_cmd_verify_hardening.py .py 1 symbol added, 5 symbols modified
+ NULL_LONG_ID import import NULL_LONG_ID L66–66
~ tests/test_cmd_workspace_hardening.py .py 1 symbol added, 1 symbol modified
+ NULL_COMMIT_ID import import NULL_COMMIT_ID L28–28
~ tests/test_cmd_worktree_hardening.py .py 5 symbols added, 45 symbols modified
+ NULL_LONG_ID import import NULL_LONG_ID L24–24
+ muse_dir import import muse_dir L25–25
+ objects_dir import import objects_dir L25–25
+ ref_path import import ref_path L25–25
+ worktrees_dir import import worktrees_dir L25–25
~ tests/test_code_commands.py .py 5 symbols added, 43 symbols modified
+ coordination_dir import import coordination_dir L64–64
+ indices_dir import import indices_dir L64–64
+ muse_dir import import muse_dir L64–64
+ ref_path import import ref_path L64–64
+ repo_json_path import import repo_json_path L64–64
~ tests/test_code_migrate.py .py 9 symbols added, 1 symbol removed, 87 symbols modified
base64 import import base64 L31–31
+ b64url_encode import import b64url_encode L41–41
+ commits_dir import import commits_dir L44–44
+ logs_dir import import logs_dir L44–44
+ muse_dir import import muse_dir L44–44
+ objects_dir import import objects_dir L44–44
+ ref_path import import ref_path L44–44
+ remotes_dir import import remotes_dir L44–44
+ repo_json_path import import repo_json_path L44–44
+ snapshots_dir import import snapshots_dir L44–44
~ _v0_id
~ tests/test_core_doc_renderer.py .py 1 symbol added, 1 symbol modified
+ NULL_COMMIT_ID import import NULL_COMMIT_ID L19–19
~ tests/test_core_msign.py .py 2 symbols added, 1 symbol removed, 7 symbols modified
base64 import import base64 L39–39
+ b64url_decode import import b64url_decode L43–43
+ b64url_encode import import b64url_encode L43–43
~ tests/test_core_pack.py .py 1 symbol added, 4 symbols modified
+ NULL_LONG_ID import import NULL_LONG_ID L20–20
~ tests/test_core_reflog.py .py 1 symbol added, 1 symbol modified
+ NULL_COMMIT_ID import import NULL_COMMIT_ID L16–16
~ tests/test_core_workspace.py .py 1 symbol added, 2 symbols modified
+ NULL_COMMIT_ID import import NULL_COMMIT_ID L12–12
~ tests/test_core_worktree.py .py 1 symbol added, 2 symbols modified
+ NULL_COMMIT_ID import import NULL_COMMIT_ID L10–10
~ tests/test_integrity_I9_sigkill.py .py 4 symbols added, 43 symbols modified
+ commits_dir import import commits_dir L57–57
+ muse_dir import import muse_dir L57–57
+ releases_dir import import releases_dir L57–57
+ tags_dir import import tags_dir L57–57
~ _repo
~ tests/test_lineage_algorithm.py .py 1 symbol modified
~ tests/test_merge_data_integrity.py .py 4 symbols added, 41 symbols modified
+ commits_dir import import commits_dir L45–45
+ muse_dir import import muse_dir L45–45
+ ref_path import import ref_path L45–45
+ snapshots_dir import import snapshots_dir L45–45
~ _ref
~ tests/test_mpack_oserror_integrity.py .py 1 symbol added, 1 symbol modified
+ NULL_COMMIT_ID import import NULL_COMMIT_ID L38–38
~ tests/test_msign_dual_sig.py .py 1 symbol added, 1 symbol removed, 6 symbols modified
~ tests/test_porcelain_security.py .py 1 symbol added, 5 symbols modified
~ tests/test_read_snapshot_supercharge.py .py 1 symbol added, 5 symbols modified
~ tests/test_rebase_supercharge.py .py 3 symbols added, 1 symbol removed, 48 symbols modified
_REBASE_STATE_FILE_fn import import _REBASE_STATE_FILE_fn L45–45
+ muse_dir import import muse_dir L45–45
+ rebase_state_path import import rebase_state_path L45–45
+ ref_path import import ref_path L45–45
~ tests/test_reflog_supercharge.py .py 2 symbols added, 8 symbols modified
~ tests/test_security_agent_impersonation.py .py 1 symbol added, 1 symbol removed, 10 symbols modified
~ tests/test_security_branch_ref_injection.py .py 1 symbol added, 2 symbols modified
+ NULL_LONG_ID import import NULL_LONG_ID L48–48
~ tests/test_sem_ver.py .py 2 symbols modified
~ tests/test_snapshot_delta.py .py 1 symbol added, 3 symbols modified
+ NULL_LONG_ID import import NULL_LONG_ID L19–19
~ tests/test_stress_merge_regression.py .py 3 symbols added, 43 symbols modified
+ merge_state_path import import merge_state_path L45–45
+ muse_dir import import muse_dir L45–45
+ ref_path import import ref_path L45–45
~ _ref
~ tests/test_workspace_supercharge.py .py 1 symbol added, 1 symbol modified
+ NULL_COMMIT_ID import import NULL_COMMIT_ID L34–34
~ tests/test_worktree_supercharge.py .py 1 symbol added, 2 symbols modified
+ NULL_COMMIT_ID import import NULL_COMMIT_ID L22–22
~ tools/demo.py .py 1 symbol modified
~ _run
~ tools/typing_audit.py .py 1 symbol modified
← 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:47840b61eb241a77c24b90e3328db76b1cdd6141e14ff3432efd9fb0f454e7ea --body "your comment"