ref:e451b924073f2a23a8310fb36ebe11d1d704cdcb

feat: make object size limits configurable per-repo

Add max_object_size option to Repo.new/2 (default 128MB unchanged). Limit enforced in: - Object.read/2 (loose object decompression) - Object.decode/2 (now accepts max_size option) - ObjectResolver (pack object size check after decompression) - ReceivePack (incoming push object validation) Error messages now include the configured limit for clarity. Also updates CHANGELOG and README for recent features. Closes #19 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
SHA: e451b924073f2a23a8310fb36ebe11d1d704cdcb
Author: Cole Christensen <cole.christensen@macmillan.com>
Date: 2026-04-09 12:57
Parents: 4c5251d
8 files changed +177 -27
Type
CHANGELOG.md +15 −0
@@ -5,6 +5,21 @@
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Added
- Repository integrity verification (`Fsck.check/2`) with full and quick modes
- `list_objects/2` callback on Storage behaviour for enumerating loose objects
- Dialyzer enforced in CI pipeline
- `Pack.Reader.read_object/4` with external resolver for REF_DELTA bases
### Fixed
- `Diff.diff_blobs/4` spec now includes binary file return variant
- `Protocol.ReceivePack` state type includes all struct fields
- Resolved all Dialyzer warnings (4 type errors)
## [0.1.0] - 2026-02-10
### Added
README.md +1 −0
@@ -18,5 +18,6 @@
- **Git wire protocol** — pkt-line framing, upload-pack, receive-pack
- **Pluggable storage** — filesystem, S3 (any S3-compatible service), and in-memory backends
- **ETS caching** — LRU object cache with configurable size limits
- **Integrity verification** — fsck with full (SHA re-hash) and quick (refs-only) modes
## Installation