gabriel / musehub public
feat patch phase2 task/phase1-object-store-invariant #5 / 6
AI Agent gabriel · 21 days ago · May 29, 2026 · Diff

feat(phase2): write commit objects to S3 at all 5 write sites (issue #63)

All commit write paths now call backend.put(commit_id, commit_to_bytes(commit)) and populate MusehubCommit.storage_uri: - merge_proposal (merge commit) - create_repo initialize=True (init commit) - ingest_push_data sync path (per-commit in loop) - commit_files_to_repo (server-side commit) - wire_push bulk insert (push receive path)

Adds commit_to_bytes() helper to musehub/muse_cli/snapshot.py producing canonical muse binary format: commit <size>\0<json>.

7 commit tests GREEN, 7 snapshot tests RED (Phase 3).

sha256:e597c0b97ade9c3c52ac4735ceb437ee69d1b6f0db61b8d7caa6467c5866566d sha
+4 ~9 symbols
sha256:435566ebc6734bc8cfc1aab02ab71d30f4a8761ea02ce4bb1fdd8d62eb5ea01e snapshot
+4
symbols added
~9
symbols modified
0
dead code introduced
Semantic Changes 13 symbols
~ musehub/muse_cli/snapshot.py .py 4 symbols added
+ commit_to_bytes function function commit_to_bytes L75–112
+ TYPE_CHECKING import import TYPE_CHECKING L18–18
+ _json import import _json L17–17
+ annotations import import annotations L15–15

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