Skip to content

Release Convee 2.3.0: worker pipelines and Rust WASM steps - #42

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

fazzatti merged 28 commits into
mainfrom
dev

Conversation

@fazzatti

@fazzatti fazzatti commented Oct 12, 2026 •

Copy link
Copy Markdown
Owner

Promote the reviewed worker and Rust WASM features from dev to main as Convee 2.3.0. This combines #40 and #41 while preserving the existing step, pipeline, plugin and context model.

  • Add intentional single-job workers, typed split/join parallel steps, caller/worker plugin scopes, and separate invocation-owned and persistent lifetimes. Include bounded capacity, timeouts, recovery budgets, close/reopen, idle cleanup and terminal disposal across Deno, Node, Bun and Vite/browser transports.
  • Add optional /wasm and /wasm/jco entrypoints with inferred generated types, lazy/eager preparation and preload, fresh or persistent instances, owned outputs, explicit host capabilities and cleanup, and no replay of failed work. Include real Rust examples and a finite ABI conformance inventory across direct/worker and fresh/persistent execution.
  • Keep consumer usage and design in the main README, preserve public API TSDoc, and remove the separate maintenance guides from the package.

Version 2.3.0 is an additive minor release from main's 2.1.0: it includes the worker APIs prepared as 2.2.0 and the new WASM APIs prepared as 2.3.0. No intentional breaking core API change is introduced.

Validation: all 13 checks pass at current head 76683be in CI run 38187685435. The downloaded CI artifact confirms 3334/3334 production lines, 1332/1332 branches and 297/297 functions across all 42 covered source modules. Codecov also confirms 100.00% project coverage. LCOV and HTML now use the same production scope as the strict quality gate, and Codecov uploads only that verified report; the 100% targets and source-module completeness guard remain unchanged. Checks include Rust regeneration, the Deno/Node/Bun/browser matrix, ABI/type contracts, mutation and property campaigns, resource retention, documentation and package validation. All 32 README examples type-check.

Merging into main invokes the existing CI-gated version publication workflow.

The ancestry merge in 945acbb resolves historical squash-merge conflicts without changing any files. Current main ebae761 was already an ancestor of the reviewed worker head c444c5f; that head and its dev squash commit 027e453 have identical trees. Recording this ancestry makes the release PR directly mergeable while preserving the tested release content.

fazzatti and others added 27 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

codecov-commenter commented Oct 12, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (ebae761) to head (76683be).

Additional details and impacted files
@@             Coverage Diff             @@
##              main       #42     +/-   ##
===========================================
  Coverage   100.00%   100.00%             
===========================================
  Files           23        42     +19     
  Lines         1610      3334   +1724     
  Branches       273       639    +366     
===========================================
+ Hits          1610      3334   +1724     
Files with missing lines Coverage Δ
src/context/runtime.ts 100.00% <ø> (ø)
src/error/index.ts 100.00% <ø> (ø)
src/pipe/error.ts 100.00% <ø> (ø)
src/pipe/factory.ts 100.00% <ø> (ø)
src/plugin/error.ts 100.00% <ø> (ø)
src/plugin/factory.ts 100.00% <ø> (ø)
src/plugin/guards.ts 100.00% <ø> (ø)
src/plugin/plugin.ts 100.00% <ø> (ø)
src/runtime/error.ts 100.00% <ø> (ø)
src/step/error.ts 100.00% <ø> (ø)
... and 21 more

... and 1 file with indirect coverage changes

🚀 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 14ebdbe into main Oct 12, 2026
13 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