diff --git a/CHANGELOG.md b/CHANGELOG.md index 827666c..fb7e72b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,20 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [3.2.0] - 2026-07-19 + +### Added + +- **Persistent Git Protocol Sessions**: Added bounded, backpressured sessions + for `git cat-file --batch`, `git mktree --batch -z`, and `git fast-import`. +- **Cross-Runtime Duplex Port**: Added an optional session runner contract for + Node.js, Bun, Deno, and custom runners while preserving one-shot execution. + +### Fixed + +- **Session Contract Validation**: Normalized validation and process failures, + bounded stderr collection, and hardened close, timeout, and poison behavior. + ## [3.1.0] - 2026-07-13 ### Added diff --git a/package.json b/package.json index a746234..dd920e8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@git-stunts/plumbing", - "version": "3.1.0", + "version": "3.2.0", "description": "Robust async, stream-first Git plumbing for Node, Bun, and Deno.", "type": "module", "main": "index.js", diff --git a/src/infrastructure/adapters/deno/DenoShellRunner.js b/src/infrastructure/adapters/deno/DenoShellRunner.js index 9bf349c..6d2bf45 100644 --- a/src/infrastructure/adapters/deno/DenoShellRunner.js +++ b/src/infrastructure/adapters/deno/DenoShellRunner.js @@ -70,7 +70,7 @@ export default class DenoShellRunner { } } return { - code: processError !== null && status.code === 0 ? 1 : status.code, + code: status.code === 0 && (processError !== null || timedOut) ? 1 : status.code, error: processError, signal: status.signal, stderr: await stderrPromise,