Skip to content

feat(workflows): save BPMN documents with subprocesses - #1033

Merged
sfmskywalker merged 3 commits into
mainfrom
claude/bpmn-save-with-subprocesses
Sep 12, 2026
Merged

sfmskywalker merged 3 commits into
mainfrom
claude/bpmn-save-with-subprocesses

Conversation

@sfmskywalker

Copy link
Copy Markdown
Member

Closes #1032. Part of elsa-workflows/elsa-core#7909.

Why

#1031 refused to save a BPMN document that declared a subprocess, transaction or event subprocess. The core document PUT used to write those bodies empty. elsa-workflows/elsa-core#8077 fixed that: the PUT now restores each kept subprocess's stored body, with every binding inside it, by element id. The contract is unchanged.

What changed

Compatibility

The document endpoints exist only in elsa-core 3.8 preview builds. Preview builds made between elsa-core #8060 and #8077 serve them without the fix, and saving from Studio against those builds would still empty subprocesses. No stable release is affected.

Tests

  • Session: SaveAsync on a document with a subprocess sends the PUT.
  • bUnit: in a document with a subprocess, a top-level task shows its editors and Save sends the PUT.
  • bUnit: an element inside a subprocess is still not editable, and the message names the core limitation.
  • Full Elsa.Studio.Workflows.Tests run: 445/445.
  • A test-host crash in WorkflowInstanceDesignerDisconnectRefreshTests (from fix(workflows): stop instance designer refresh timers when the circuit disconnects #992) appeared once under heavy machine load. It did not reproduce in 2 runs on this branch or 2 runs on main.

🤖 Generated with Claude Code

sfmskywalker and others added 2 commits September 12, 2026 19:03
elsa-core now keeps a subprocess's stored body and bindings across the document PUT
(elsa-workflows/elsa-core#8077), so Studio no longer needs to refuse saving a BPMN
document that declares one. Removes BpmnDocumentFailureReason.SubProcessContentNotCarried,
the SubProcessIds check, and the "Performed by" panel's CanEdit/Save gating and info
alert. Editing an element inside a subprocess is still refused, since its body still
isn't part of the document, and now names that as a server limitation tracked in
elsa-workflows/elsa-core#8076 instead of implying a Studio one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@greptile-apps

greptile-apps Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

Safe to merge; there are no outstanding blocking issues.

Summary

  • This PR enables saving BPMN documents containing subprocesses now that the server preserves their stored bodies, while keeping elements inside subprocesses read-only. It removes obsolete save guards and distinguishes unavailable nested-scope elements from stale or missing top-level selections.

Reviews (2) · Last reviewed commit: "fix(workflows): cite the subprocess limi..."

… subprocess

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@sfmskywalker
sfmskywalker merged commit af6235e into main Sep 12, 2026
10 checks passed
@sfmskywalker
sfmskywalker deleted the claude/bpmn-save-with-subprocesses branch September 12, 2026 17:30
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.

BPMN: save documents with subprocesses now that core keeps their bodies

1 participant