---
title: "2026-08-28 Infrastructure VxData multipart upload calldiff"
description: "Ran calldiff for mono PR #356 and summarized the changed call trees."
image: "https://docs.virdx.dev/img/virdx-social-card.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.virdx.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 2026-08-28 Infrastructure VxData multipart upload calldiff

## Work Done

- Identified the current branch as mono PR #356, `feat: Multi-part uploads for vxdata`.
- Fetched `origin/main` and used the PR merge base `d2ab806ccdc33997124ba50c1d30cf2c0e0362db` against head `350b1823f0b1a8092130846074f3993963bf4fe1`.
- Ran `npx --yes calldiff@latest diff` in Markdown and JSON formats.
- The successful result contained 42 entry trees. The main changed flow runs from `StorageNamespace.upload` through `upload_objects`, transport multipart methods, API multipart routes, and S3 service operations.
- Inspected the production call paths for reuse and encapsulation opportunities. Recommended splitting S3 internals into focused upload, download, transport, direct-mode, and shared-transfer modules while keeping `StorageNamespace` as the public facade.
- Identified tighter boundaries for wire policy, batched convenience uploads, multipart session identity, typed part URL results, and shared storage wire schemas.
- Noted a no-overwrite invariant gap: only multipart creation validates the target, while later lifecycle operations accept caller-supplied paths and concurrent sessions can complete over the same key.
- Clarified the object-store boundary: MinIO and Ceph RGW are both reached through the S3 protocol using `minio-py`; the backend changes through endpoint/credential configuration, while `StorageTransport` selects API-presigned versus direct-signing control planes.
- Created and pushed `felix.knispel/refactor/vxdata-sdk-s3-module` from the PR #356 branch. Commit `39fbe5e6` moves direct signing, S3 transport, download, upload, and shared transfer policy into `vxdata.sdk.s3` without changing the transfer state machines.
- Verified structural AST equivalence of all moved functions/classes, ran the 48-test SDK suite, all affected Nx format/lint/typecheck/test/build targets, boundary checks, and an independent packaging/import review.
- Ran a Felix-style review of the stacked S3 reorganization and fetched Felix's ten inline comments on PR #356. The split request is resolved, but the package still lacks an explicit `s3/__init__.py` contract and `StorageNamespace` still imports private `_WirePolicy` plus four implementation modules.
- Recommended an explicit internal `s3` export surface, removing private-name leakage, restoring newspaper ordering, trimming stateful prose, and carrying forward the unresolved `transfer_config`, documentation, constants, and public-before-private feedback from PR #356.

## Lessons Learned: Pitfalls

- An unscoped monorepo calldiff produced a large result (about 789 KB). Generic test helper names such as `upload` caused unrelated same-name call paths to appear deep in some test trees.
- The mandatory workstream SOP context was not needed for this read-only tool invocation.

## Lessons Learned: Improvements

- A short SOP for call-diff tooling could recommend using the PR merge base, saving JSON plus Markdown output, and scoping paths or depth in large monorepos.
- For review delivery, report entry-tree counts and primary production flows while retaining the full raw artifacts locally.

Source: https://docs.virdx.dev/knowledge/inbox/2026-08-28-infrastructure-vxdata-multipart-calldiff/index.mdx
