feat(backend): a decision request accepts several resume actions - #195
Draft
dawidaksamski wants to merge 4 commits into
Draft
dawidaksamski wants to merge 4 commits into
dawidaksamski wants to merge 4 commits into
Conversation
added 4 commits
October 2, 2026 09:48
dawidaksamski
added this pull request to stack #199
October 2, 2026 15:24
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
A decision request may now offer one or more
resumeactions, each routed on its own port. A step can have several normal outcomes, such as a review that is complete or incomplete, and none of them counts as a rejection. Until now the second outcome had to bereject, which recordsrejectedon the run, and a run keeps the first outcome it declares.rejectandrerun-sourcestay at most one each.rejectis still the only action that records an outcome. A request still needs at least oneresume(resume_required).duplicate_port, on the later action's port. It replacesreject_port_equals_resume_port: with several resume actions there is no one pair to compare. A blank port still answersport_emptyalone.resumeaction. New tests pin this.reasonstays optional onresume;reasonRequiredis honoured onrejectonly. No client can ask a decider for a note on a resume action yet, and the flag can be added later without touching stored requests (follow-up: decision-resume-reason-required).Docs
apps/backend/decision-request.decision-log.md: a new section, "Several resume actions", items 27 to 30.DecisionRequestand its action types says "one or more". It reaches the published types of@workflowbuilder/temporalthroughBaseNode.decisionRequest, but only as comment wording, so there is no changeset.pr-check.ymlmay warn about that.Not in this PR
resumeaction. The canvas already draws one handle per routed action. Offering every action, and a Review node with several resume actions, are the next two changes.Testing
port_empty;incomplete: the run continues on that port, the other branch is skipped, and the run endscompletedwith no outcome.complete: the other branch runs, again with no outcome.rejectwithout a reason:400 invalid_decisionwithreason_required. With a reason: the run ends withoutcome: 'rejected'.400 invalid_snapshotwithduplicate_portatactions.1.port.