Skip to content

Commit d63de0b

Browse files
committed
chore(release): v5.3.1
1 parent c03e827 commit d63de0b

File tree

4 files changed

+20
-4
lines changed

4 files changed

+20
-4
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [5.3.1] — 2026-03-15
9+
10+
### Fixed
11+
- **Repeated chunk tree emission**`createTree()` and `_createMerkleTree()` now emit one chunk blob tree entry per unique digest, preserving first-seen order at write time while leaving the manifest unchanged as the authoritative ordered index of chunk occurrences.
12+
- **Invalid Git trees for repetitive content** — repetitive files no longer produce duplicate tree entry names, so emitted trees pass `git fsck --full` without `duplicateEntries` failures.
13+
- **Regression coverage for tree reachability** — added unit tests for first-seen dedupe behavior and integration tests that store repetitive content, verify restore correctness, and assert clean `git fsck` results on a real Git repository.
14+
815
## [5.3.0] — 2026-03-08
916

1017
### Added

README.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,17 @@ We use the object database.
3838

3939
<img src="./docs/demo.gif" alt="git-cas demo" />
4040

41+
## What's new in v5.3.1
42+
43+
**Patch release — repeated chunk tree fix.**
44+
45+
- **Unique chunk tree entries**`createTree()` and `_createMerkleTree()` now emit one tree entry per unique chunk digest instead of repeating the same filename for repeated chunk occurrences.
46+
- **Manifest remains authoritative** — chunk order and multiplicity still come entirely from the manifest; restore behavior is unchanged.
47+
- **Clean `git fsck` on repetitive files** — repetitive content no longer yields duplicate tree filenames or `duplicateEntries` errors.
48+
- **New regressions** — unit and integration coverage now exercises repeated-chunk files and validates real Git tree integrity with `git fsck --full`.
49+
50+
See [CHANGELOG.md](./CHANGELOG.md) for the full list of changes.
51+
4152
## What's new in v5.3.0
4253

4354
**M16 Capstone — audit remediation, CLI configuration, and security hardening.**
@@ -56,8 +67,6 @@ We use the object database.
5667
- **Constructor validation**`chunkSize`, `maxRestoreBufferSize`, `maxEncryptionBufferSize` validated at construction time.
5768
- **Cross-runtime portability**`Error.captureStackTrace` guarded, crypto adapter contracts normalized.
5869

59-
See [CHANGELOG.md](./CHANGELOG.md) for the full list of changes.
60-
6170
## What's new in v5.2.3
6271

6372
**Internal refactoring — no breaking API changes.** The facade, CasService, and crypto adapters were restructured for better separation of concerns:

jsr.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@git-stunts/git-cas",
3-
"version": "5.3.0",
3+
"version": "5.3.1",
44
"exports": {
55
".": "./index.js",
66
"./service": "./src/domain/services/CasService.js",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@git-stunts/git-cas",
3-
"version": "5.3.0",
3+
"version": "5.3.1",
44
"description": "Content-addressed storage backed by Git's object database, with optional encryption and pluggable codecs",
55
"type": "module",
66
"main": "index.js",

0 commit comments

Comments
 (0)