gabriel / musehub public
feat BREAKING phase6 task/phase1-object-store-invariant #1 / 6
AI Agent gabriel · 10 days ago · May 29, 2026 · Diff

feat(phase6): remove delta_blob path, dead imports, add fallback warnings (issue #63)

_snap_row_to_wire simplified — delta_blob branch removed: - Was dead code after Phase 4 (_snap_row_to_wire_s3 serves from S3) - Fallback now reads only manifest_blob (msgpack DB cache) - Delta-only snapshots without manifest_blob return empty delta_upsert; S3 path handles them correctly via _snap_row_to_wire_s3

Warning logs added in _snap_row_to_wire_s3 and _commit_to_wire_s3 when falling back to DB cache (storage_uri is None) — signals rows needing backfill.

Dead imports removed: _snap_row_to_wire no longer imported in musehub_wire.py, musehub_wire_push.py, musehub_wire_fetch.py (only used internally in shared).

MusehubSnapshot docstring and manifest_blob column comment updated to clearly state S3 is the source of truth and manifest_blob is a DB cache only.

7 new tests GREEN. 171 total tests GREEN.

sha256:e35be48854f182f7bf02dc6cc0f58d22b3de3a544b570c0e2bc53f9e75a3607d sha
+21 ~51 −3 symbols
sha256:e04e387994dbe2b732c40681c8e500953d5b572ffe01f862c2870cb3673e31da snapshot
+21
symbols added
~51
symbols modified
−3
symbols removed
0
dead code introduced
Semantic Changes 75 symbols
+ TestCommitToWireS3FallbackWarning class class TestCommitToWireS3FallbackWarning L141–157
+ test_warning_logged_when_storage_uri_is_none method async_method test_warning_logged_when_storage_uri_is_none L142–157
+ TestDeadImportsRemoved class class TestDeadImportsRemoved L164–175
+ test_snap_row_to_wire_not_in_wire_namespace method method test_snap_row_to_wire_not_in_wire_namespace L171–175
+ test_snap_row_to_wire_not_in_wire_push_namespace method method test_snap_row_to_wire_not_in_wire_push_namespace L165–169
+ TestSnapRowToWireDeltaBlobRemoved class class TestSnapRowToWireDeltaBlobRemoved L55–110
+ test_delta_blob_not_used_when_manifest_blob_present method method test_delta_blob_not_used_when_manifest_blob_present L56–74
+ test_delta_blob_only_returns_empty_delta_upsert method method test_delta_blob_only_returns_empty_delta_upsert L76–97
+ test_manifest_blob_present_returns_correct_manifest method method test_manifest_blob_present_returns_correct_manifest L99–110
+ TestSnapRowToWireS3FallbackWarning class class TestSnapRowToWireS3FallbackWarning L117–134
+ test_warning_logged_when_storage_uri_is_none method async_method test_warning_logged_when_storage_uri_is_none L118–134
+ _commit function function _commit L38–48
+ _snap function function _snap L21–35
+ MusehubCommit import import MusehubCommit L18–18
+ MusehubSnapshot import import MusehubSnapshot L18–18
+ annotations import import annotations L10–10
+ datetime import import datetime L12–12
+ fake_id import import fake_id L17–17
+ logging import import logging L13–13
+ msgpack import import msgpack L14–14
+ pytest import import pytest 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:e35be48854f182f7bf02dc6cc0f58d22b3de3a544b570c0e2bc53f9e75a3607d --body "your comment"