Skip to content

feat: add skip-duplicate execution support - #170

Merged
crimx merged 2 commits into
mainfrom
crimx/skip-duplicates
Nov 2, 2026
Merged

crimx merged 2 commits into
mainfrom
crimx/skip-duplicates

Conversation

@crimx

@crimx crimx commented Nov 2, 2026

Copy link
Copy Markdown
Member

No description provided.

@coderabbitai

coderabbitai Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI; Enforced overrides: Organization
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: b94dee1d-14a4-4e7c-8c4f-61085a669799
Commits

Reviewing files that changed from the base of the PR and between d92222b and 09f6be0.

Files selected for processing: 4
  • apps/server/migrations/0060_skip_duplicates.sql
  • apps/server/test/migrate.test.ts
  • packages/open-flow/src/workbench/browser/runtime/editor/skipDuplicatesSection.test.tsx
  • packages/open-flow/src/workbench/browser/runtime/editor/skipDuplicatesSection.tsx

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: Passed 3 · Inconclusive 1

Failed Failed checks: 1 inconclusive

Check name Status Explanation Resolution
Description check Inconclusive 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 Passed checks: 3 passed
Check name Status Explanation
Title check Passed The title uses the required <type>: <subject> format, uses English, and accurately describes the Skip Duplicates execution changes.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed 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

@coderabbitai coderabbitai Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Fix comments: Fix CodeRabbit comments on this PR

Comment thread apps/server/node/storage/state-store.ts Resolved
@crimx
crimx merged commit 6e9b80d into main Nov 2, 2026
7 checks passed
@crimx
crimx deleted the crimx/skip-duplicates branch November 2, 2026 14:52
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