gabriel / musehub public
feat BREAKING dev
AI Agent gabriel · 34 days ago · May 11, 2026 · Diff

feat: bundle content validation (issue #49 phase 2)

Adds per-object sha256 verification, decompression size guard (zip bomb), and object count mismatch detection to process_bundle_index_job. All validation runs before any DB or MinIO writes so failed jobs leave no partial state. Quarantined jobs get status='quarantined' with a reason.

- BundleValidationError exception class (terminal, not retried) - quarantine_job() in musehub_jobs — sets status='quarantined', quarantine_reason - quarantine_reason column on MusehubBackgroundJob - bundle_max_decompressed_bytes config setting (default 4 GB) - declared_objects_count stored in job payload for count mismatch check - put_bundle() and quarantine_bundle() on BlobBackend - 8 new tests in test_bundle_validation_phase2.py

sha256:7189fd2a116a24aa69ce8efd79893929ac75aa42aeb6308678df94d00246a9c7 sha
sha256:e8987ab1761e837c443538f467bb5dd86bb26ee10d036506e4f54b38e5fc88aa snapshot
← 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:7189fd2a116a24aa69ce8efd79893929ac75aa42aeb6308678df94d00246a9c7 --body "your comment"