Skip to content
CAI
Software that uses CAICheck a score

fsprojects/FSharp.Control.TaskSeq

64.2

Adequate · 2 October 2026

2.8k

lines of production code

F#

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

FSharp.Control.TaskSeq is a .NET library that provides an IAsyncEnumerable implementation via a taskSeq computation expression for handling asynchronous sequences. It enables efficient iteration over async and task-based sequences while correctly managing exception propagation and disposal. The system includes comprehensive tooling for building, testing, and validating the package across multiple .NET versions.

Features

Initial repository structure and documentation for FSharp.Control.TaskSeq

Establishes the project as FSharp.Control.TaskSeq, providing an \IAsyncEnumerable\<'T\>\ implementation via the \taskSeq\ computation expression and a \TaskSeq\ module. The repository includes the main library targeting \netstandard2.1\, test projects targeting \net10.0\, and a \build.cmd\ script for building and testing. Documentation is generated using fsdocs, and versioning is automated from \release-notes.txt\. The initial release notes (v1.1.1) document new functions like \tryMax\/\tryMin\, \foldWhile\, and \toChannelAsync\/\ofChannel\, alongside performance optimizations using \while!\ loops and fixes for \Async.bind\ signatures and null argument handling.

(repo-wide) · high confidence

Behavioural changes

Standardized F\# formatting and added solution-level configuration files

The project now includes an \.editorconfig\ that enforces consistent code style, specifically increasing the default F\# line length to 140 characters and configuring Fantomas rules for spacing and indentation. Additionally, Rider dictionary settings and NCrunch test execution configurations have been added to the solution to support developer tooling and parallel test runs.

src · high confidence

TaskSeq computation expression now supports async and task loops without AggregateException wrapping

The \async\ and \task\ computation expressions can now iterate directly over \TaskSeq\<'T\>\ sequences using \for\ loops. This change introduces \AsyncBuilder.For\ and \TaskBuilderBase.For\ extensions that correctly handle exceptions: specifically, the \async\ loop no longer wraps task exceptions in \AggregateException\, preserving the original exception type for \try/catch\ blocks, while the \task\ loop supports dynamic resumable code for efficient iteration.

src/FSharp.Control.TaskSeq · high confidence

Test coverage

Add smoke tests for NuGet package validation and v0.3.0 features; Expanded test coverage for TaskSeq operations.

Dependencies

Upgrade test tooling to .NET 10 and latest stable versions

The test and smoke-test projects have been upgraded to target .NET 10.0 and updated to the latest stable versions of their test dependencies, including xUnit 2.9.3, Microsoft.NET.Test.Sdk 18.4.0, FsUnit.xUnit 6.0.1, and coverlet.collector 6.0.4. The smoke-test project now references the TaskSeq library version 1.1.1 and FsToolkit.ErrorHandling.TaskResult 4.18.0 to validate forward compatibility, while the main test project pins FSharp.Core to 6.0.1 to ensure backward compatibility with the library's minimum supported version.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 65 → 64 (-0.3)
  • Rubric changed (rubric-2026.09.13 → rubric-2026.10.1) — scores are not directly comparable.

Lenses

  • Code Health 85 → 85 (+0.0)
  • Architecture 100 → 100 (+0.1)
  • Maturity 58 → 58 (+0.0)
  • Readiness 63 → 63 (+0.0)
  • Security 68 → 66 (-2.3)

Resolved (2)

  • Documentation: no installation or build instructions (README.md)
  • High: security finding (details withheld)

New (2)

  • High: security finding (details withheld)
  • High: security finding (details withheld)

Changes since last survey

  • 5 commits — 5 feature/other, 0 fixes

By area

  • .github/workflows — 3 commits
  • (repo) — 1 commit
  • (root) — 1 commit

Notable commits

  • change: Merge pull request #484 from fsprojects/repo-assist/improve-valuetask-test-coverage-0f09fa068ede7daa
  • change: tests: add coverage for ValueTask helper module
  • change: update repo assist
  • change: update repo assist
  • change: update repo assist

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

fsprojects/FSharp.Control.TaskSeq was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit edabdcd4aa5a58b7cc09ee0bb6f5d9527f1d3115 — the exact code this score is about.
  • Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-351388015767.