Skip to content

2.14.0 – Oct 4, 2026

Choose a tag to compare

@github-actions github-actions released this 04 Oct 11:14
· 132 commits to main since this release
2ccb773

2.14.0 (2026-10-04)

Features

  • modeling: cascade legality rules across known descendants (#452) (2ccb773)

    Declare a shared business rule once on a Model and apply it to that Model and its locally known descendants. For example, a closed Project can prevent further changes to its Tasks and their children:

    @AssertLegal(cascade = true)
    void assertOpen() {
        if (closed) {
            throw new IllegalCommandException("This project is closed.");
        }
    }

    Normal payload and context injection remains available. Use allowedClasses to select payload families, @Parent(validateAncestors = false) to stop one inheritance route, or @Apply(ancestorValidation = AncestorValidation.DISABLED) to permit a particular child mutation.

    The SDK checks all enabled known parent routes, including both sides of a move and automatically deleted children. Ancestor reads participate in atomic conflict validation: RETRY reevaluates and guarded ACCEPT attempts use FAIL to prevent stale permission. Replay does not execute these assertions.

    This feature is opt-in and SDK-side; writers need the relevant Model classes and rules. It adds no new Runtime protocol requirement. The developer guide and Java/Kotlin agent guides explain timing, exceptions, concurrency and performance.

  • modeling: guard known descendants with cascading assertions (9c19cc7)

    Allow Model-owned legality rules to guard known parent routes with explicit relationship and Apply exceptions. Protect validation reads across compound changes, automatic deletions and concurrent reparenting; reject guarded ACCEPT conflicts instead of retaining stale permission.