v0.17.0
Release 0.17.0
This release completes a functional programming core overhaul that restructures Flowthru's API surface for clarity and composability. The rewrite simplifies namespace organization, improves flow registration patterns, and adds comprehensive metadata export capabilities. All starter examples have been ported to the new API.
What's New
- Functional Programming Core Architecture: The entire core library has been refactored to use functional programming patterns. This reorganizes the API into more granular namespaces —
Flowthru.Step,Flowthru.Data.Catalog,Flowthru.Hosting, andFlowthru.Diagnosticsinstead of the previousFlowthru.Core.*hierarchy — making dependencies more explicit and composability clearer.- Updated API Imports: All steps, catalogs, and configurations now use the new namespace structure. For example,
Flowthru.Core.Stepsis nowFlowthru.StepandFlowthru.Core.Datais nowFlowthru.Data.Catalog. - Catalog Initialization Simplified: The catalog constructor no longer requires
InitializeCatalogProperties()— initialization is now handled automatically during flow registration. - Enhanced Flow Registration: You can now register flows with descriptions and configure metadata exporters (JSON and Mermaid) via a
ConfigureMetadataAPI.
- Updated API Imports: All steps, catalogs, and configurations now use the new namespace structure. For example,
- Metadata Export and Diagnostics: Flows can now export runtime metadata in multiple formats. Register JSON and Mermaid exporters during service configuration to automatically capture flow structure and execution details.
Bug Fixes
- Pre-Flight Determinism: The sequential pre-flight validation path now produces deterministic error ordering byte-for-byte across releases, ensuring reproducible behavior in CI and dev environments.
- Catalog Item De-duplication: External inputs consumed by multiple steps are now inspected at most once during pre-flight, avoiding redundant I/O operations.
❤️ Thank You
- Spencer Elkington