@@ -4,6 +4,30 @@ All notable changes to this project will be documented in this file.
44The format is based on [ Keep a Changelog] ( http://keepachangelog.com/en/1.0.0/ )
55and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
66
7+ ## [ 0.26.0] - 2025-11-24
8+
9+ ### Added
10+ * Add multiple extension points to the ` Evolve ` flow
11+ * ` after_selection_complete() ` - called after selection completes
12+ * ` after_crossover_complete() ` - called after crossover completes
13+ * ` after_mutation_complete() ` - called after mutation completes
14+ * ` after_generation_complete() ` - called at end of generation
15+ * Add reporter hooks ` on_crossover_complete() ` and ` on_mutation_complete() `
16+ * Provides observation points matching the new extension hooks
17+ * Add ` before() ` and ` after() ` hooks to ` Select ` , ` Crossover ` , and ` Mutate ` traits
18+ * Allows customization of population lifecycle operations
19+ * Default implementations handle age filtering and cardinality updates
20+
21+ ### Changed
22+ * Extension trait methods now receive ` &mut Self::Genotype ` instead of ` &Self::Genotype `
23+ * Allows extensions to modify genotype parameters during evolution
24+ * Extension trait ` call() ` method is now ` after_selection_complete() `
25+ * ` call() ` still exists and delegates to ` after_selection_complete() ` for backward compatibility
26+ * Move population lifecycle operations from inline ` EvolveState ` methods to trait hooks
27+ * Age filtering moved to ` Select::before() `
28+ * Population cardinality update moved to ` Select::after() `
29+ * Age increment handled internally by crossover implementations
30+
731## [ 0.25.1] - 2025-11-12
832
933### Changed
0 commit comments