Skip to content

Make FBTransition duck-type as its own FBWorkItem - #83

Merged
noha merged 1 commit into
mainfrom
fix-stale-pending-transition-duck-typing
Jul 23, 2026
Merged

Make FBTransition duck-type as its own FBWorkItem#83
noha merged 1 commit into
mainfrom
fix-stale-pending-transition-duck-typing

Conversation

@noha

@noha noha commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

FBBaseExecutor>>isCreated (and FBFlowExecutor>>step) read pending entries as FBWorkItem via #transition. FBParallelExecutor's pending queue was deliberately left holding raw transitions when FBWorkItem was introduced (ca0988a), and any FBFlowExecutor pending queue persisted to Soil before that migration still holds raw transitions too. Loading such an instance and computing its state (e.g. via GET .../flows/:id/instances) sent #transition to the raw transition and crashed with MessageNotUnderstood.

FBTransition>>transition answers self, so both shapes respond to #transition the same way pending/isCreated already rely on #source and #target working on either shape.

FBBaseExecutor>>isCreated (and FBFlowExecutor>>step) read pending
entries as FBWorkItem via #transition. FBParallelExecutor's pending
queue was deliberately left holding raw transitions when FBWorkItem
was introduced (ca0988a), and any FBFlowExecutor pending queue
persisted to Soil before that migration still holds raw transitions
too. Loading such an instance and computing its state (e.g. via
GET .../flows/:id/instances) sent #transition to the raw transition
and crashed with MessageNotUnderstood.

FBTransition>>transition answers self, so both shapes respond to
#transition the same way pending/isCreated already rely on #source
and #target working on either shape.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@noha
noha merged commit 3569b4a into main Jul 23, 2026
3 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.

1 participant