Problem
Applications with immutable sharded indexes can read one bundle member in bounded work, but changing a few members requires callers to enumerate and rebuild the complete bundle. This preserves payload deduplication but makes incremental materialization O(total members), repeats direct-edge validation, and prevents the storage layer from reusing unchanged fanout nodes.
The immediate evidence is git-warp incremental materialization: adding five nodes to a retained 100-node corpus still emitted 166 blob writes, 220 object metadata checks, and 399 targeted tree lookups. The current flat-property profile rebuilds every shard rather than deriving a new root from the old root.
Required design
Specify a lawful git-cas operation such as bundles.derive() or bundles.update() that accepts a retained base bundle plus ordered puts/deletes and returns a staged immutable bundle. Existing validated support should be reused without weakening integrity; only changed fanout paths should be rewritten when the persisted layout permits it.
Acceptance criteria
Downstream
Needed for truly sublinear retained-index updates in git-warp and other git-cas consumers.
Problem
Applications with immutable sharded indexes can read one bundle member in bounded work, but changing a few members requires callers to enumerate and rebuild the complete bundle. This preserves payload deduplication but makes incremental materialization O(total members), repeats direct-edge validation, and prevents the storage layer from reusing unchanged fanout nodes.
The immediate evidence is git-warp incremental materialization: adding five nodes to a retained 100-node corpus still emitted 166 blob writes, 220 object metadata checks, and 399 targeted tree lookups. The current flat-property profile rebuilds every shard rather than deriving a new root from the old root.
Required design
Specify a lawful git-cas operation such as
bundles.derive()orbundles.update()that accepts a retained base bundle plus ordered puts/deletes and returns a staged immutable bundle. Existing validated support should be reused without weakening integrity; only changed fanout paths should be rewritten when the persisted layout permits it.Acceptance criteria
Downstream
Needed for truly sublinear retained-index updates in git-warp and other git-cas consumers.