You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A Think-sized git-warp v18-to-v19 rehearsal still showed short-lived Git children after commit reads and commit writes were moved onto persistent plumbing. The remaining hot path translates thousands of small patches and attachments through repeated assets.put() calls.
On git-cas v6.5.5, ChunkRepository.storeChunk() calls persistence.writeBlob() once per chunk, and GitPersistenceAdapter.writeBlob() runs one-shot git hash-object -w --stdin. git-cas already has a bounded writeBlobs() path backed by one scoped fast-import session, but ordinary asset ingestion does not consume it across independent small assets. This is distinct from #98, which preserves the one-shot fallback when duplex sessions are unavailable.
Desired outcome
Provide a git-cas-owned, bounded batch boundary for a sequence of independent asset writes so callers such as a migrator can submit many small streaming assets without receiving raw Git/session authority. The implementation may use putMany, an explicit scoped asset batch, or another semantic API, but process count should scale with bounded flush windows rather than one-chunk asset count.
Required invariants
Sources remain streaming; batching has explicit item and byte bounds.
Results preserve input order and produce the same manifests, trees, handles, and Git OIDs as individual put() calls.
Chunk hashing, encryption, compression, deduplication, and integrity metadata remain unchanged.
A failed item cannot silently expose partial success as a complete batch.
Scoped fast-import checkpoints and closes before returned handles escape.
Problem
A Think-sized git-warp v18-to-v19 rehearsal still showed short-lived Git children after commit reads and commit writes were moved onto persistent plumbing. The remaining hot path translates thousands of small patches and attachments through repeated
assets.put()calls.On git-cas v6.5.5,
ChunkRepository.storeChunk()callspersistence.writeBlob()once per chunk, andGitPersistenceAdapter.writeBlob()runs one-shotgit hash-object -w --stdin. git-cas already has a boundedwriteBlobs()path backed by one scopedfast-importsession, but ordinary asset ingestion does not consume it across independent small assets. This is distinct from #98, which preserves the one-shot fallback when duplex sessions are unavailable.Desired outcome
Provide a git-cas-owned, bounded batch boundary for a sequence of independent asset writes so callers such as a migrator can submit many small streaming assets without receiving raw Git/session authority. The implementation may use
putMany, an explicit scoped asset batch, or another semantic API, but process count should scale with bounded flush windows rather than one-chunk asset count.Required invariants
put()calls.fast-importcheckpoints and closes before returned handles escape.Acceptance criteria
put().Non-goals
fast-importprocess.