# git-cas v6.5.2 Release Notes

v6.5.2 removes repeated Git process startup from immutable object metadata and
tree reads, adds an explicitly bounded page-batch write path, and gives store
owners deterministic local resource cleanup.

## Persistent Git Object Sessions

`GitPersistenceAdapter` now reuses one lazily opened typed `cat-file` session
for immutable metadata and tree reads. Tree creation uses typed `mktree`, while
each explicit page batch uses one scoped `fast-import` process. Existing
injected plumbing without typed session capabilities remains source-compatible
and uses the command-per-operation fallback.

Parsed tree residency is bounded by entry count and estimated bytes. Payload
reads and streams preserve their existing bounds; streams are not buffered.
Individual blob writes deliberately remain one-shot so a blob pruned by an
external process is recreated on the next write rather than trusted through
stale process state.

## Bounded Page Batches

`pages.putBatch()` accepts a complete explicit page group, defaults to at most
256 pages and 32 MiB, and permits lower per-page and aggregate bounds. It
collects and validates the bounded inputs before persistence, preserves input
order, and returns immutable staged-page results with the same content identity
as individual writes.

## Resource Lifecycle

`ContentAddressableStore.close()` and async disposal block new operations,
drain work that already started, terminate abandoned streams and Git children,
close typed sessions, and release bounded cache residency. Closing is local
resource cleanup only. It never removes objects, moves refs, or changes
retention and publication state.

## Performance Evidence

The controlled real-Git diagnostic reduced selected bundle-reference reads from
225 Git processes to one and observed wall time from 288.647 ms to 50.366 ms.
Bounded page writes fell from 32 processes to one and from 68.658 ms to
33.490 ms. Semantic digests were identical in both comparisons. Timing is
environment-specific; process counts and semantic equality are stable
regression contracts.

These measurements exclude Git child CPU and RSS. git-warp still owes its own
process-tree CPU, end-to-end latency, and larger-than-memory streaming evidence
after adopting this release.

## Verification

The versioned candidate passed all 14 release-verifier steps with 6,817 observed
tests: 2,080 Node unit tests, 2,079 Bun unit tests, 2,070 Deno unit tests, and
196 real-Git integration tests on each runtime. Lint, examples, public type
compatibility, build stamping, npm packaging dry-run, and JSR publication
dry-run also passed.

## Compatibility

This release does not require stored-data migration. Existing persisted formats,
handles, refs, witnesses, and method signatures remain compatible. The batch and
lifecycle methods are additive, and low-level persistence adapters may continue
to omit the optional session, batch-write, and close capabilities.
