- Hybrid Interop Optimization: Re-engineered the
flow {}builder to use inlined overloads forTask,ValueTask, andAsync. This eliminates the "adapter tax" and brings performance significantly closer to nativetask {}expressions. - Zero-Boilerplate Binding: Directly
let!andreturn!on any standard .NET asynchronous type without manual lifting or wrapping. - Improved Allocation Profile: Reduced heap allocations by ~35% for mixed workflows interoperating with .NET tasks, while maintaining 100% runtime stability.
- Refined Internal Architecture: Optimized the unified
Flowtype for better cross-assembly inlining and Fable compatibility. - Design Decision Log: Added formal documentation for the performance optimization strategy and deprecated outdated architectural records.
- Unified Flow Model: Consolidated
AsyncFlowandTaskFlowinto a single, high-performanceFlowtype that works across all supported platforms (including Fable 5). - ZIO-Style Execution Semantics: Introduced a robust
ExitandCausemodel that preserves the distinction between typed failures (Fail), cancellations (Interrupt), and unhandled defects (Die). - Structured Concurrency: Added first-class support for fibers with
fork,join, andinterrupt, along with parallel orchestration primitives likezipParandrace. - Software Transactional Memory (STM): Implemented a composable STM engine with
TRef,retry,orElse, and thestm {}computation expression for atomic state transitions. - Effectful Streams: Introduced
FlowStreamwith built-in backpressure and nativeIAsyncEnumerableinterop for processing asynchronous data sequences. - Runtime Foundation: Implemented a new internal
RuntimeRegistryandScopesystem for explicit service management and deterministic resource teardown. - Service Redesign: Migrated to nominal service contracts using standard F# interfaces, making workflow signatures more readable and stable.
- Fable 5 & Cross-Platform Support: Full support for Fable 5 with a unified asynchronous strategy that remains performant on both .NET and JS targets.
- Telemetry & Hosting: Added
FsFlow.Hostingfor seamless DI integration andFsFlow.Runtime.Telemetryfor automatic distributed tracing and activity tagging. - Documentation Reorganization: Completely restructured the documentation site with a hierarchical sidebar, new tutorials on dependency management, and a comprehensive API reference.
- Introduced Tuple-Based Smart Binds in
flow {},asyncFlow {}, andtaskFlow {}for a concise "unwrap or fail" DX - Added
orFailTosemantic label to clarify domain error attachment in smart binds - Expanded
TaskFlowsmart binds to supportTask<Option<_>>,Task<Option<_>>,ValueTask<Option<_>>, andValueTask<ValueOption<_>> - Major documentation overhaul with function-level granularity mirroring FsToolkit.ErrorHandling
- Enriched every public API member with detailed XML documentation (summary, remarks, parameters, returns)
- Added expected output demonstrations to validation and diagnostics guides
- New "For AI Agents" guide and machine-optimized
llms.txtfor better LLM assistance - Improved site accessibility with better contrast and verified all documentation links
- Major architectural shift to a workflow family:
Flow,AsyncFlow, andTaskFlow - Introduced
FsFlow.Netpackage for .NET task-oriented workflows and interop - Added
ColdTask<'value>for deferred, restartable task factories - Migrated documentation to a versioned Docusaurus site with generated runnable examples
- Reorganized the docs into a clearer product-manual path across getting started, execution semantics, runtime interop, environment slicing, and architecture
- Added package-oriented API landing pages for
FsFlowandFsFlow.Net - Trimmed the README into a shorter NuGet-facing entry point
- Added pure validation helpers and effect bridges for
AsyncandTask - Expanded benchmark suite with BenchmarkDotNet and new comparison scenarios
- Second public preview release of
FsFlow - Completed the package and repository identity move to
FsFlowacross project files, examples, tests, docs, and packaging metadata - Refreshed the docs site presentation and bundled docs assets for the renamed package
- Cleaned up solution and workflow references after the
v0.1.0release - Kept the public
FlowAPI stable while polishing the package surface before larger follow-up changes
- Initial public preview release of
FsFlow - Core
Flow<'env, 'error, 'value>abstraction for explicit environment requirements, typed failures, and cold execution - Direct
Result,Async,Task, andColdTaskinterop inside oneflow {}workflow - Runtime helpers for cancellation, timeout, retry, logging, and scoped cleanup
- User-facing guides for getting started, environment slicing, semantics, task and async interop, and supported architectural styles
- Runnable example applications plus a NativeAOT probe
- NuGet packaging metadata, symbols, SourceLink, and GitHub Pages API docs pipeline
Publish versions as Git tags such as v0.6.0.
The GitHub release workflow builds the package artifacts and attaches them to a GitHub Release.
Note: Only the core FsFlow package is currently part of the public release cycle. Service packages (FsFlow.Services.*) are experimental and versioned independently.
NuGet publishing stays manual. Use scripts/pack.sh to build the local artifacts.