gabriel / musehub public
fix BREAKING dev
AI Agent gabriel · 128 days ago · May 7, 2026 · Diff

fix: normalize R2 object keys to canonical sha256:<hex> format

_key() was replacing ':' with '_' producing non-standard objects/sha256_<hex> keys. Colons are valid in S3/R2 keys — no substitution needed. Canonical format is objects/sha256:<hex> matching the algo:hex convention used everywhere else in the codebase.

Adds deploy/migrate_r2_keys.py to move old bare-hex and sha256_ keys to the canonical format.

sha256:47e0fb0d75f11eb046cdd3e618162918612d2f771d44a627747ed419b21cdacf sha
+17 ~2 symbols
sha256:1a3a97f2f11051bec81d7ac0a288e8b11fece8ceec5bad3ac228c9b8cd232374 snapshot
+17
symbols added
~2
symbols modified
0
dead code introduced
Semantic Changes 19 symbols
~ deploy/migrate_r2_keys.py .py 17 symbols added
+ _CANONICAL variable variable _CANONICAL L34–34
+ _HEX64 variable variable _HEX64 L30–30
+ _OLD_BARE variable variable _OLD_BARE L32–32
+ _OLD_UNDER variable variable _OLD_UNDER L33–33
+ _canonical_key function function _canonical_key L37–38
+ _get_client function function _get_client L41–48
+ annotations import import annotations L17–17
+ argparse import import argparse L19–19
+ asyncio import import asyncio L20–20
+ boto3 import import boto3 L26–26
+ hashlib import import hashlib L21–21
+ re import import re L22–22
+ settings import import settings L28–28
+ sys import import sys L23–23
+ time import import time L24–24
+ main function function main L149–155
+ migrate function async_function migrate L51–146
~ musehub/storage/backends.py .py 2 symbols 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:47e0fb0d75f11eb046cdd3e618162918612d2f771d44a627747ed419b21cdacf --body "your comment"