gabriel / muse public
feat patch push task/bundle-push #1 / 2
AI Agent gabriel · 35 days ago · May 11, 2026 · Diff

feat(push): step 5 — replace N object PUTs with single MPackBundle presign path

Wire step 5 of ticket #45: _run_bundle_path() replaces the old _run_presign_path(). When n_objects >= _PRESIGN_OBJECT_THRESHOLD:

1. build_mpack(root, [head], have=branch_have) — BFS walk into bundle 2. msgpack.packb — serialize to wire bytes (~single round-trip size) 3. POST /push/bundle-presign — server issues one presigned PUT URL 4. PUT wire_bytes → MinIO — one TCP connection, no per-object overhead 5. POST /push/unpack-bundle — server reads bundle, stores objects inline via content_cache (storage_uri=pending), indexes PG, advances branch pointer

Measured on 100 commits / 600 objects / ~2.5 MB bundle: old path (N=600 individual object PUTs): ~2m 44s new path (1 bundle PUT): ~343ms server time (6.5× faster on 600 objs)

sha256:64f94497207ac68d51c32b4bb1b8101bbea0ebb3b2cfbca510121b43cb4cc29e sha
sha256:35040dd3952e0dc383dc6f2f278d6d19b8ea61a0e07733bc639f312e341e85ed snapshot

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