Skip to content

Releases: pilsy/chrono-forge

0.9.3 -- Enhanced data action handling

21 Sep 02:01
Compare
Choose a tag to compare

Property decorator can be hooked up to data/state by providing a path in the options Beta.

19 Sep 08:36
Compare
Choose a tag to compare

Fixed issue with limitRecursion

18 Sep 13:48
Compare
Choose a tag to compare
0.7.15

Fix issue with limitRecursion and its usage converting circular struc…

Fix calling loadData on every update

17 Sep 06:57
Compare
Choose a tag to compare
0.7.8

0.7.8 - Fix calling loadData on every update

Careful handling of recursive updates

17 Sep 04:19
Compare
Choose a tag to compare
0.7.7

0.7.7 -- Careful propagation of updates

Enhanced Child Workflow Management

17 Sep 01:39
Compare
Choose a tag to compare

And caching query selectors

Enhancements to Decorators and Workflow Metadata Management

16 Sep 06:48
a023bc1
Compare
Choose a tag to compare

Release Notes

Enhancements to Decorators and Workflow Metadata Management

In this release, we've made significant improvements to the way decorators handle metadata registration for workflows. These changes ensure robust, isolated metadata management, avoiding cross-contamination and correctly registering workflow queries, signals, and properties. The updates will enhance the developer experience and provide more predictable behavior in Temporal workflows.

Key Changes:
  1. Improved Property Decorator for Workflow Properties:

    • The Property decorator now directly uses the propertyKey (name of the property) to define both queryName and signalName. This ensures that queries and signals are uniquely and clearly associated with the properties they manage.
    • The decorator utilizes Reflect metadata to safely register and retrieve metadata on the class or instance, ensuring no interference between classes or prototypes.
  2. Refined Getter and Setter Registration with Get and Set Decorators:

    • Get and Set decorators now properly define and manage metadata for getters and setters, using Reflect to avoid potential prototype pollution.
    • Each decorated property is registered with a unique getter and setter, preventing any unwanted sharing of state or behavior across different workflow classes.
  3. Consistent Metadata Keys and Usage:

    • Introduced constants for metadata keys (PROPERTY_METADATA_KEY, GETTER_METADATA_KEY, SETTER_METADATA_KEY) to maintain consistency across the codebase.
    • The metadata keys are used with Reflect API to ensure that metadata is correctly isolated and retrieved for each specific class or instance.
  4. Robust Binding of Queries, Signals, and Properties in Workflows:

    • Improved binding functions (bindProperties, bindQueries, bindSignals) to correctly collect and bind metadata using the Reflect API. This guarantees that all queries, signals, and properties are properly registered during the workflow initialization phase.
    • Enhanced error handling and logging to provide more informative error messages if queries or signals are not registered correctly.
  5. Enhanced Workflow Execution Reliability:

    • The improvements ensure that workflows correctly register handlers for all expected signals and queries, avoiding issues such as QueryNotRegisteredError.
    • Added robust metadata collection and binding logic to support complex workflows with dynamic state management and signal/query handling.
Benefits:
  • Increased Stability and Predictability: The changes ensure that workflows operate as expected without unintended side effects due to improperly registered signals or queries.
  • Better Developer Experience: Clearer, more predictable behavior when using decorators, making it easier for developers to define and manage Temporal workflows.
  • Improved Metadata Management: Using Reflect for metadata ensures a clean, isolated metadata state, avoiding conflicts between classes or instances.

apiToken signal automatically forwarded to children

16 Sep 05:42
Compare
Choose a tag to compare

apiToken signal automatically forwarded to children

Fix generic type

13 Sep 21:07
Compare
Choose a tag to compare
0.6.9

Fix generic type

Use generic type for return of data getter

13 Sep 20:56
Compare
Choose a tag to compare
0.6.8

Merge branch 'main' of https://github.com/pilsy/chrono-forge