# git-cas v6.5.1 Release Notes

v6.5.1 completes the bounded immutable read path introduced in v6.5.0 by
coalescing repeated `pages.get()` payload reads. Exact application reads no
longer start another Git blob process when the same retained page is already
resident in the store's bounded payload cache.

## Bounded Payload Reuse

The page cache defaults to at most 128 entries and 8 MiB of payload bytes. It
allocates no fixed arena. Applications can configure the limits with
`pageCacheEntries` and `pageCacheBytes` when constructing the store.

Every `get()` result is a caller-owned copy. Concurrent reads share in-flight
work, rejected reads are immediately retryable, and values larger than the byte
budget are returned to the current caller without remaining resident or
evicting unrelated entries. In-flight work is tracked separately from completed
LRU residence, so capacity pressure cannot break coalescing; transient memory
still follows caller concurrency and the configured per-page size bound.

`pages.open()` is unchanged: it remains a streaming operation and never enters
the payload cache. Cache residence is not a retention witness, so applications
must continue to keep handles reachable through the documented lifecycle APIs.

## Performance Evidence

The real-Git command-count integration contract proves that an identical warm
`pages.get()` performs zero additional Git commands. git-warp will publish its
end-to-end CPU, wall-clock, Git-command, and bounded-memory deltas after adopting
this release.

## Verification

The versioned candidate passed all 14 release-verifier steps with 6,676 observed
tests: 2,036 Node unit tests, 2,035 Bun unit tests, 2,026 Deno unit tests, and
193 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. It changes no persisted
formats, handles, refs, witnesses, or existing method signatures. The two
constructor options are additive and optional.
