You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Included review availability: This review used your included allowance. 3 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour.
Summary by CodeRabbit
New Features
Added a Skip Duplicates node that identifies items using configurable fields, or each scalar item when no fields are set.
Duplicate history is committed only after a successful Run. Failed, canceled, or indeterminate Runs release pending history, allowing items to be processed again.
Added visibility into pending and reserved history, with clearing unavailable while records are pending.
Bug Fixes
Runs that pause and resume retain pending duplicate history; failed node invocations release their pending records.
Breaking Changes
Replaced the previous deduplication node and its mode and scope settings. Existing configurations using the retired format are not supported.
Documentation
Updated authoring guides and examples to describe the new node and its Run-history behavior.
Walkthrough
This PR replaces the managed dedupe node with skip-duplicates. It changes identity selection to configured field paths or scalar items, removes mode and watermark behavior, and adds pending identity storage that stages node history per Run and commits it only when the Run completes successfully. Server run handling, Flow State views, clearing rules, migrations, tests, lab scenarios, documentation, and workbench UI were updated for the new contract.
Sequence Diagram(s)
sequenceDiagram
participant RunExecutor
participant StateStore
participant RunStore
RunExecutor->>StateStore: stage identity hashes for a Run invocation
alt Run completes successfully
RunStore->>StateStore: finishRun(runId, true)
StateStore-->>RunStore: commit pending identities
else node fails or Run ends otherwise
RunExecutor->>StateStore: discardInvocation(runId, jobId)
RunStore->>StateStore: finishRun(runId, false)
end
Loading
Possibly related PRs
oomol-lab/open-flow#167: Adds the original persistent Flow State and mode-based deduplication implementation that this PR replaces.
oomol-lab/open-flow#166: Establishes the earlier Engine and Flow model baseline; this PR updates the contract and engine digest.
oomol-lab/open-flow#158: Adds Wait continuation and Run wait recovery, which this PR updates to preserve pending identities across Wait recovery.
Merge Risk: Minimal · up to 09f6b
The reviewed changes have no identified issue requiring a fix before merge.
Pre-merge checks: 3 · 1
Failed checks: 1 inconclusive
Check name
Status
Explanation
Resolution
Description check
No pull request description was provided, so the changeset lacks a meaningful author-provided summary.
Add a description that explains the Skip Duplicates execution changes, including the migration, pending identity handling, run lifecycle behavior, and test coverage.
Passed checks: 3 passed
Check name
Status
Explanation
Title check
The title uses the required <type>: <subject> format, uses English, and accurately describes the Skip Duplicates execution changes.
Linked Issues check
Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check
Check skipped because no linked issues were found for this pull request.
Finishing Touches
Simplify code
Commit to this branch
Create a new PR
Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
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
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.
No description provided.