Skip to content

Release Convee 2.4.0: bounded async concurrency - #45

Merged
fazzatti merged 31 commits into
mainfrom
dev
Oct 12, 2026
Merged

fazzatti merged 31 commits into
mainfrom
dev

Conversation

@fazzatti

Copy link
Copy Markdown
Owner

Adds concurrent() for bounded asynchronous composition of functions, native steps and pipelines in the current JavaScript runtime. Callers can reuse clients, closures and class instances while retaining Convee's typed split/job/join flow and native plugin lifecycle.

  • Direct named builders preserve job argument types and nested join results, matching worker composition.
  • Capacity belongs to each invocation by default; capacityScope: "shared" shares global, per-task and admission limits across overlapping calls.
  • all waits for real cleanup and aggregates every task failure; collect supplies ordered outcomes. Cancellation and deadlines remove queued work while waiting for running tasks to settle.
  • README examples, public TSDoc, consumer/type contracts, edge cases and mutation checks cover the new API. CI also runs on dev pushes.

The version moves from 2.3.0 to 2.4.0 because this adds a public API. The merge of already-incorporated main history preserves the previously verified source tree exactly.

Validation: dev CI passed all 13 jobs for that source tree: 3712/3712 lines, 1500/1500 branches, 323/323 functions and 77/77 mutation checks. Deno 2.6/2.9.6, Node 22.12/24.1, Bun 1.4.3 and Chromium/Firefox/WebKit development and production consumers pass. Release PR checks will verify the new head.

fazzatti and others added 30 commits June 18, 2024 19:32
* docs: improve readme

* Create main.yml (#1)

* package: add jsr.json (#2)

* Feat jsr (#3)

* package: add jsr.json

* fix: jsr path

* feat: switch to deno (#4)

* Switch to Deno (#5)

* feat: switch to deno

* fix uuid generation

* feat: add export types

* packaging: bump version to 0.1.1
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Release 0.10.0 (#34)

* V1 refactor

* refactor library docs and release workflows
* Update publish configuration (#37)

* Export types (#6)

* docs: improve readme

* Create main.yml (#1)

* package: add jsr.json (#2)

* Feat jsr (#3)

* package: add jsr.json

* fix: jsr path

* feat: switch to deno (#4)

* Switch to Deno (#5)

* feat: switch to deno

* fix uuid generation

* feat: add export types

* packaging: bump version to 0.1.1

* refactor: replace storeOutput with storeMetadata and update tests accordingly

* chore: update version to 0.8.0 in deno.json (#28)

* Update src/utils/reduce-pipeline-steps-to-names.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/pipeline/index.unit.test.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/pipeline/index.unit.test.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix: pipeline types and add plugin functionality for pipeline-level o… (#30)

* Fix: error handling in CreateProcess to enrich and throw unhandled er… (#32)

* feat: add BeltPlugin tests and enhance plugin types with metadata handling

* docs: update README to enhance installation, usage, and core concepts sections

* feat: enhance GitHub Actions workflow for publishing with version detection and tagging

* refactor: streamline plugin and process engine implementations with enhanced documentation

* chore: update version numbers in deno.json and deno.lock for release

* Complete V1 refactor (#35)

* Release 0.10.0 (#34)

* V1 refactor

* refactor library docs and release workflows

* chore: update version number to 1.0.0 in deno.json

* chore: update publishing configuration and version number to 1.0.1 in deno.json

* feat!: harden Convee runtime and add comprehensive quality gates (#38)

* feat!: harden execution contracts and add comprehensive quality gates

Unify lifecycle drivers, isolate invocation contexts, preserve argument tuples, normalize plugin descriptors, and repair fluent/type-depth contracts.

Add deterministic, generated, concurrency, mutation, architecture, package, retention and benchmark validation across supported Deno runtimes.

BREAKING CHANGE: enforce explicit tuple transport, body-only recovery, last-completed history and defensive configuration ownership. Prepare version 2.0.0 with documented migration guidance.

* fix(ci): parse colored mutation test summaries accurately

Normalize ANSI formatting before recognizing Deno failed-test summaries. Keep infrastructure failures and timeouts distinct from assertion kills. Add eight tooling regressions to the quality gate and verify the campaign with forced color.

* ci: refresh pinned actions to supported Node 24 runtimes

Use verified official checkout 7.0.1, upload-artifact 7.0.1 and Codecov 7.0.0 revisions. Preserve scoped permissions, existing inputs and the supported Deno matrix.

* docs: make usage and testing guides release-ready

Remove branch-only release commentary and Deno-only support framing. Keep migration guidance, document the actual CI matrix separately, and describe the reusable release workflow without candidate or unpublished-package instructions.

* docs: restore the published README walkthrough and examples

Restore the live 1.0.1 README layout, badges, architecture walkthrough, sync APIs, error model, design notes and license. Retain original example use cases and add current lifecycle, tuple, context and migration guidance.\n\nType-check 21 standalone snippets without rejecting import-only teaching examples. Add six regression tests for the development-only checker and document its scope. No library runtime, API, version or release-workflow changes.

* Add onFinally lifecycle hooks in Convee 2.1 (#39)

* feat: add typed worker pools and parallel steps

Add optional worker registries, configured recipes and roles, bounded reusable pools, and ordinary async Steps with typed split/join and error policies. Include lifecycle, real-worker, type and package-consumer coverage; prepare the additive 2.2.0 release.

* test: classify suites and use BDD throughout

Rename all suites with explicit unit or integration categories, replace native registration with describe/it, and align task discovery and replay references. Preserve existing assertions and production sources.

* refactor: use aliases for repository imports

Use public, source, test and tooling aliases throughout repository checks. Generate README and type-depth imports through the import map while preserving isolated package-consumer verification.

* test: enforce full coverage and document public API contracts

Cover late transport callbacks after pool shutdown, require 100% line/branch/function coverage, and expand public TSDoc across both entrypoints and callable surfaces. Production code and type signatures are unchanged.

Verified full local checks, isolated native-worker consumption, both stale-callback guard mutants, and rejection of incomplete coverage reports.

* feat: redesign intentional workers and parallel lifetimes
* feat: add Rust component WASM steps with explicit lifecycles

* test(wasm): establish owned-value ABI conformance matrix

* docs: consolidate consumer guidance in README
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (14ebdbe) to head (1d69def).

Additional details and impacted files
@@            Coverage Diff             @@
##              main       #45    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files           42        48     +6     
  Lines         3334      3712   +378     
  Branches       639       723    +84     
==========================================
+ Hits          3334      3712   +378     
Files with missing lines Coverage Δ
src/concurrency/concurrent.ts 100.00% <100.00%> (ø)
src/concurrency/config.ts 100.00% <100.00%> (ø)
src/concurrency/error.ts 100.00% <100.00%> (ø)
src/concurrency/index.ts 100.00% <100.00%> (ø)
src/concurrency/jobs.ts 100.00% <100.00%> (ø)
src/concurrency/scheduler.ts 100.00% <100.00%> (ø)
src/index.ts 100.00% <100.00%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@fazzatti
fazzatti merged commit ed0d1f4 into main Oct 12, 2026
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants