Conversation
…eration and eFormidling.
…ult enum and use result classes instead, for expandability.
…elds from result class and instead return generic failed ProcessChangeResult.
…served key word Next.
…he workflow callback controller.
Move auto-advance orchestration from ExecuteServiceTask command to the callback controller so state is captured after data is saved. Remove null-state fallback in callback controller (error on null). Add action support to ServiceTaskResult for BPMN-aware auto-advance. Poll all active workflows instead of single workflow by ID.
Remove WorkflowType enum and IdempotencyKey/Type from WorkflowRequest (idempotency key moved to batch-level WorkflowEnqueueRequest). Add JsonStringEnumConverter to PersistentItemStatus enum so it deserializes correctly as dictionary values.
Wire up IInstanceLocker in ProcessEngine constructor and fix await using / duplicate using in ProcessEngineTest. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Co-Authored-By: Claude Opus 4.6 <[email protected]>
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Co-Authored-By: Claude Opus 4.6 <[email protected]>
IInstanceLocker.LockAsync now returns the lock token acquired from Storage. ProcessEngine uses it directly, removing the need for controllers to generate and pass fake tokens. LockToken removed from ProcessNextRequest and SubmitInitialProcessState parameter. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Sanitize route-derived commandKey with LogSanitizer and use structured logging placeholders instead of string interpolation in log calls. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Rename InstanceState → WorkflowStateSnapshot and InstanceStateService → WorkflowStateSnapshotService. Split typed capture from serialization: CaptureSnapshot returns WorkflowStateSnapshot, RestoreSnapshot accepts it, and static Serialize/Deserialize handle the string conversion at HTTP boundaries only. Internal code (ProcessEngine, IProcessEngine.EnqueueProcessNext, ProcessNextRequestFactory) now passes the typed WorkflowStateSnapshot. Serialization to the opaque string happens only at the wire boundary (WorkflowEngineCallbackController and ProcessNextRequestFactory.Create). CaptureSnapshot deep-copies the Instance to prevent mutation after capture but before serialization. Also removes the legacy RunProcessNext_PdfFails_DataIsUnlocked test. Co-Authored-By: Claude Opus 4.6 <[email protected]>
- ProcessEngineTest: update stale OperationId expectation to include the
end event name ("Task_2 -> EndEvent_1")
- SigningControllerTests: add missing GetProcessTasks() mock setup so
VerifyIsSigningTask resolves correctly on the strict mock instead of
throwing before the task-type check
Co-Authored-By: Claude Opus 4.6 <[email protected]>
InstanceLocker.LockAsync() extracted instance identifiers from HTTP route values, which fails during instance creation (POST /instances/create) where those route parameters don't exist. Added overloads that accept identifiers directly, and SubmitInitialProcessState now passes them from the Instance object. Also adds FakeWorkflowEngineClient for integration tests, which executes workflow commands in-process via WorkflowEngineCallbackController instead of requiring an external workflow engine HTTP service.
|




Description
Related Issue(s)
Verification
Documentation