Back to the changelog

v0.98.0

October 15, 2026

Cases unique across all versions, schedules resuming with the right checks, work queues honored and imports without surprises.

  • Improvement

    One entity, one case, across all versions

    The "One at a time" and "Once per entity" rules now apply to the whole flow family: an open or completed case on an earlier version counts like any other. Reference matching ignores letter case and special characters, so ORD_1 and ORD-1 stay distinct and no variant bypasses the rule. Changing an existing case's reference goes through the same checks as creation.

  • Improvement

    Scheduled cases rebound with the right checks

    When a scheduled case is rebound to the published version, FlowSharp also checks the required fields and types the new version expects. If rebinding is not possible, the case shows the reason, appears in the "Awaiting an operational flow" filter and retries every minute from the scheduled time onward. The scheduler works in pages, so many schedules at once do not slow it down.

  • Improvement

    Event-driven starts without endless loops

    An event that starts a flow carries the chain of previous starts: if it would return to a family already visited, or exceed ten hops, the start is skipped with a line in the source case's history and a warning in the logs. On publishing, the Designer flags direct cycles between flows. Sub-flow child cases inherit the parent's chain.

  • Improvement

    Imports and corrections without silent conversions

    A non-numeric confirmation timeout is rejected on every import path, in fork and in new version, instead of being converted. Map node costs must be valid numbers even in maps imported within a Solution, preview included. Correcting a task's outcome only accepts the expected values, whatever the task's state. When duplicating a flow, Sub-flows pointing to the same family point to the copy. In rules, comparisons between two dates follow chronological order.

  • Security

    Confidential data never overwritten by events and connectors

    An event or connector that returns a masked value no longer writes it into the case: the action is recorded as ignored, without counting as an error. If the masked value arrives on an unaddressable field, the whole result is discarded with a warning.

  • Improvement

    Work queues and concurrent tasks

    If a phase with a work limit has free seats but someone is already queued, the new case lines up and the one waiting goes first; a case re-entering the phase it already occupied keeps its seat. Correcting a completed task re-evaluates the phase asynchronously. Two simultaneous completions of the same task no longer block anything: the second gets a clear error and, in automations, the attempt is retried.