# v0.3.0 to v0.3.7

## v0.3.7 (15 March 2026) {#v037-15-march-2026}

[v0.3.7 on GitHub](https://github.com/higher-kinded-j/higher-kinded-j/releases/tag/v0.3.7)

**WriterT Transformer, For-Comprehension Power-Ups, Build Tooling, and Spring Virtual Thread Support**

This release introduces the `WriterT` monad transformer with MTL-style capability interfaces, enriches for-comprehensions with parallel composition, traversal operations, and optics integration, adds compile-time Path type checking via the new `hkj-checker` javac plugin, delivers one-line project setup through build tool plugins (`hkj-gradle-plugin` and `hkj-maven-plugin`), and extends Spring MVC with virtual-thread-native return value handlers for `VTaskPath` and `VStreamPath`.

- [WriterT](../transformers/writert_transformer.md): Monad transformer for output accumulation across effect boundaries, wrapping `Kind<F, Pair<A, W>>` with automatic Monoid-based combining during `flatMap` chains
- [MonadWriter](../transformers/mtl_writer.md): MTL-style capability interface with `tell`, `listen`, `pass`, `listens`, and `censor` for output accumulation
- [MonadReader](../transformers/mtl_reader.md): MTL-style capability interface with `ask`, `local`, `reader`, and `asks` for shared environment access
- [MonadState](../transformers/mtl_state.md): MTL-style capability interface with `get`, `put`, `modify`, and `gets` for stateful computation
- [par()](../functional/for_par.md): Parallel/applicative composition for `For` and `ForPath` comprehensions; true concurrency on `VTask`, intent-documenting on sequential monads
- [traverse/sequence/flatTraverse](../functional/for_traverse.md): Bulk effectful operations within comprehension chains: apply an effectful function across a structure, flip `Structure<Effect<A>>` to `Effect<Structure<A>>`, or traverse-and-flatten in one step
- [For-Comprehension Optics Integration](../functional/for_optics.md): `through(Iso)` for type-safe value conversion in `For`; `traverseOver()`, `modifyThrough()`, `modifyVia()`, and `updateVia()` for optics-driven state operations in `ForState`
- [Fold Combinators](../optics/folds.md): `Fold.plus()`, `Fold.empty()`, and `Fold.sum()` forming a monoid on folds for multi-path data extraction
- [Compile-Time Path Checks](../tooling/compile_checks.md): `hkj-checker` javac plugin detecting Path type mismatches at compile time for `via`, `then`, `zipWith`, `zipWith3`, `recoverWith`, and `orElse`
- [Build Plugins](../tooling/gradle_plugin.md): `hkj-gradle-plugin` (one-line Gradle setup) and `hkj-maven-plugin` (Maven lifecycle extension) that auto-configure HKJ dependencies, `--enable-preview` flags, compile-time checking, and optional Spring Boot integration
- [hkj-bom](../tooling/gradle_plugin.md): Bill of Materials POM for version-aligned dependency management across all HKJ modules in both Gradle and Maven
- [Diagnostics](../tooling/diagnostics.md): `hkjDiagnostics` Gradle task and `mvn hkj:diagnostics` goal reporting active dependencies, compiler arguments, and checks
- [VTaskPath Spring MVC](../spring/spring_boot_integration.md): `VTaskPathReturnValueHandler` converting controller return values to async `DeferredResult` responses on virtual threads
- [VStreamPath SSE](../spring/spring_boot_integration.md): `VStreamPathReturnValueHandler` converting controller return values to Server-Sent Events with pull-based backpressure, no Reactor required
- Dependency updates: Gradle 9.4.0, JUnit 6.0.3, Jackson 3.1.0, Spring Boot 4.0.3, jOOQ 3.20.11, javapoet 0.12.0, and others
- Faster `FunctionValidator` and `KindValidator` with simplified implementation
- Test reliability improvements: replaced `Thread.sleep` with Awaitility across test suite

---

## v0.3.6 (6 March 2026) {#v036-6-march-2026}

[v0.3.6 on GitHub](https://github.com/higher-kinded-j/higher-kinded-j/releases/tag/v0.3.6)

**VStream Lazy Streaming, Resilience Patterns, and ForState Comprehensions**

This release introduces `VStream`, a lazy pull-based streaming type built on virtual threads with full HKT integration, adds four core resilience patterns (Circuit Breaker, Bulkhead, Retry, Saga) with Effect Path integration, extends `ForState` with filtering and pattern matching, and delivers a Market Data Pipeline capstone example.

- [VStream](../monads/vstream.md): Lazy pull-based streaming on virtual threads with `Step` protocol (Emit/Done/Skip), factory methods (`of`, `range`, `iterate`, `generate`, `unfold`), transformation combinators, and error recovery
- [VStream HKT Integration](../monads/vstream_hkt.md): `VStreamKind` witness type with Functor, Applicative, Monad, Foldable, Traverse, and Alternative type class instances
- [VStream Parallel Operations](../monads/vstream_parallel.md): `VStreamPar` with `parEvalMap`, `parEvalMapUnordered`, `parEvalFlatMap`, `merge`, `parCollect`, and chunking combinators
- [VStream Resources](../monads/vstream_resources.md): `bracket`/`onFinalize` resource lifecycle management and `VStreamReactive` bidirectional `Flow.Publisher` bridge with backpressure
- [VStreamPath](../effect/path_vstream.md): Effect Path bridge with factory methods, `PathOps` operations, terminal operations bridging to `VTaskPath`, and optics focus bridge
- [Circuit Breaker](../resilience/circuit_breaker.md): State machine (Closed/Open/HalfOpen) with configurable failure thresholds and recovery timeouts
- [Bulkhead](../resilience/bulkhead.md): Concurrency limiting for isolating resource access
- [Retry](../resilience/retry.md): Configurable retry policies with fixed delay, exponential backoff, and jitter
- [Saga](../resilience/saga.md): Distributed transaction compensation with ordered rollback
- [Combined Resilience](../resilience/combined.md): Composing multiple resilience patterns and Path API ergonomic methods: `retry()`, `circuitBreaker()`, `bulkhead()`, `timeout()`
- [ForState](../functional/forstate_comprehension.md): Filtering (`when`), pattern matching (`matchThen`), traversals, zoom, and `toState()` bridge from For comprehensions at all arities (1–12)
- [traverseWith()](../optics/focus_dsl.md): Parallel effectful optics traversal for `FocusPath`, `AffinePath`, and `TraversalPath` via `VTaskPath` and `StructuredTaskScope`
- [Market Data Pipeline](../examples/examples_market_data.md): 14-feature capstone example demonstrating concurrent feed merging, parallel enrichment, risk assessment, windowed aggregation, anomaly detection, and circuit breaker failover
- Refreshed [Monads chapter](../monads/ch_intro.md) with problem-first structure, real-world analogies, and consistent formatting
- `FunctionValidator` optimisation: deferred error-message construction avoids `String` allocation on the happy path; fixed Gradle benchmark commands (`-Pincludes`)
- Javadoc generation fix to include annotation-processor-generated sources (`Tuple2`–`Tuple12`, `MonadicSteps`, etc.)
- [JMH benchmarks](../benchmarks.md) for VStream construction, combinators, terminals, and parallel operations

---

## v0.3.5 (15 February 2026) {#v035-15-february-2026}

[v0.3.5 on GitHub](https://github.com/higher-kinded-j/higher-kinded-j/releases/tag/v0.3.5)

**Extended For-Comprehensions, VTask API Refinement, and Documentation Restructure**

This release extends for-comprehension arity to 12, simplifies the VTask API, adds Maybe-to-Either conversions, upgrades to JUnit 6, and delivers a comprehensive documentation restructure with quickstart guides, cheat sheets, migration cookbooks, and railway diagrams.

- [For-Comprehension Arity 12](../functional/for_comprehension.md): `For` and `ForPath` now support up to 12 monadic bindings (previously 5), with generated `Tuple9`–`Tuple12` and `Function9`–`Function12`
- [VTask API](../monads/vtask_monad.md): `VTask.run()` no longer declares `throws Throwable`; checked exceptions are wrapped in `VTaskExecutionException`
- [Maybe.toEither](../monads/maybe_monad.md): New `toEither(L)` and `toEither(Supplier<L>)` conversion methods for seamless `Maybe` → `Either` transitions
- [Quickstart](../quickstart.md): New getting-started guide with Gradle and Maven setup including `--enable-preview` configuration
- [Cheat Sheet](../cheatsheet.md): Quick-reference for Path types, operators, escape hatches, and type conversions
- [Stack Archetypes](../transformers/archetypes.md): 7 named transformer stack archetypes with colour-coded railway diagrams
- [Migration Cookbook](../transformers/migration_cookbook.md): 6 recipes for migrating from try/catch, Optional chains, null checks, CompletableFuture, validation, and nested records
- [Compiler Error Guide](../effect/compiler_errors.md): Solutions for the 5 most common Effect Path compiler errors
- [Effects-Optics Capstone](../effect/capstone_focus_effect.md): Combined effects and optics pipeline example
- Railway operator diagrams for all 8 Effect Path operators and for EitherT, MaybeT, OptionalT transformers
- JUnit 6.0.2 upgrade (from 5.14.1) across all test modules
- Golden file test infrastructure with automated sync verification and pitest mutation coverage improvements

---

## v0.3.4 (31 January 2026) {#v034-31-january-2026}

[v0.3.4 on GitHub](https://github.com/higher-kinded-j/higher-kinded-j/releases/tag/v0.3.4)

**External Type Optics and Examples Gallery**

This release introduces powerful optics generation for external types you cannot modify, plus a new Examples Gallery chapter documenting all runnable examples.

- [@ImportOptics](../optics/importing_optics.md): Generate optics for JDK classes and third-party library types via auto-detection of withers and accessors
- [Spec Interfaces](../optics/optics_spec_interfaces.md): Fine-grained control over external type optics with `OpticsSpec<S>` for complex types like Jackson's `JsonNode`
- [@ThroughField Auto-Detection](../optics/copy_strategies.md#throughfield-auto-detection): Automatic traversal type detection for `List`, `Set`, `Optional`, arrays, and `Map` fields
- [Examples Gallery](../examples/ch_intro.md): New chapter with categorised, runnable examples demonstrating core types, transformers, Effect Path API, and optics
- Comprehensive hkj-processor testing improvements with enhanced coverage

---

## v0.3.3 (24 January 2026) {#v033-24-january-2026}

[v0.3.3 on GitHub](https://github.com/higher-kinded-j/higher-kinded-j/releases/tag/v0.3.3)

**Structured Concurrency, Atomic Optics, and Enhanced Examples**

This release introduces structured concurrency primitives, atomic coupled-field updates, and a comprehensive Order Workflow example demonstrating these patterns.

- [Structured Concurrency](../monads/vtask_scope.md): `Scope` for parallel operations with `allSucceed()`, `anySucceed()`, `firstComplete()`, and `accumulating()` joiners
- [Resource Management](../monads/vtask_resource.md): `Resource` for bracket-pattern cleanup with guaranteed release
- [Coupled Fields](../optics/coupled_fields.md): `Lens.paired` for atomic multi-field updates bypassing invalid intermediate states
- [Order Workflow Overview](../hkts/order-walkthrough.md): Reorganised documentation with focused sub-pages
- [Concurrency and Scale](../hkts/order-concurrency.md): Context, Scope, Resource, VTaskPath patterns in practice
- `EnhancedOrderWorkflow`: Full workflow demonstrating Context, Scope, Resource, VTaskPath
- `OrderContext`: ScopedValue keys for trace ID, tenant isolation, and deadline enforcement
- [Scope & Resource Tutorials](../tutorials/concurrency/scope_resource_journey.md): 18 exercises on concurrency patterns
- [Release History](../release-history.md): New page documenting all releases

---

## v0.3.2 (17 January 2026) {#v032-17-january-2026}

[v0.3.2 on GitHub](https://github.com/higher-kinded-j/higher-kinded-j/releases/tag/v0.3.2)

**Virtual Thread Concurrency with VTask**

This release introduces `VTask<A>`, a lazy computation effect leveraging Java 25's virtual threads for lightweight concurrent programming.

- [VTask](../monads/vtask_monad.md): Lazy computation effect for virtual thread execution
- [Structured Concurrency](../monads/vtask_scope.md): `Scope` for parallel operations with `allSucceed()`, `anySucceed()`, and `accumulating()` patterns
- [Resource Management](../monads/vtask_resource.md): `Resource` for bracket-pattern cleanup guarantees
- [VTaskPath](../effect/path_vtask.md): Integration with the Effect Path API
- [Concurrency and Scale](../hkts/order-concurrency.md): Practical patterns in the Order Workflow example
- `Par` parallel combinators for concurrent execution
- Comprehensive benchmarks comparing virtual vs. platform threads

---

## v0.3.1 (15 January 2026) {#v031-15-january-2026}

[v0.3.1 on GitHub](https://github.com/higher-kinded-j/higher-kinded-j/releases/tag/v0.3.1)

**Static Analysis Utilities**

This release adds utilities for statically analysing Free Applicative and Selective functors without execution.

- [Choosing Abstraction Levels](../functional/abstraction_levels.md): Guide to selecting Functor, Applicative, Selective, or Monad
- [Free Applicative](../monads/free_applicative.md): Static analysis with `FreeApAnalyzer`
- [Selective](../functional/selective.md): Conditional effects with `SelectiveAnalyzer`
- Tutorial 11 on static analysis patterns

---

## v0.3.0 (4 January 2026) {#v030-4-january-2026}

[v0.3.0 on GitHub](https://github.com/higher-kinded-j/higher-kinded-j/releases/tag/v0.3.0)

**Effect Path Focus Integration**

Major release introducing the unified Effect Path API and Focus DSL integration. Requires Java 25 baseline.

- [Effect Path Overview](../effect/effect_path_overview.md): The railway model for composable effects
- [Path Types](../effect/path_types.md): 17+ composable Path types including `EitherPath`, `MaybePath`, `IOPath`
- [Focus DSL](../optics/focus_dsl.md): Type-safe optics with annotation-driven generation
- [Focus-Effect Integration](../effect/focus_integration.md): Bridge between optics and effects
- [ForPath Comprehension](../effect/forpath_comprehension.md): For-comprehension syntax for Path types
- [Spring Boot Integration](../spring/spring_boot_integration.md): Spring Boot 4.0.1+ support
- [Order Workflow](../hkts/order-walkthrough.md): Complete example demonstrating Effect Path patterns

---

**Previous:** [v0.4.0](v0_4_0.md)
**Next:** [v0.1.0 to v0.2.8](earlier.md)
