feat: Branch and repeat with CEL policies #318

Closed
opened 2026-07-13 19:46:11 +02:00 by dries · 0 comments
Owner

Parent

#311

What to build

Support conditional workflow paths and bounded review/fix-style repetition without allowing cycles in the DAG. Users can see why nodes ran, skipped, repeated, blocked, or failed.

Acceptance criteria

  • CEL expressions can read a constrained environment of node outcomes and declared JSON artifacts.
  • Invalid or unauthorized CEL expressions are rejected when publishing a version.
  • Conditional edges make downstream nodes ready or skipped deterministically.
  • Repeat-until can wrap a node or subworkflow and requires a positive hard attempt limit.
  • Each repetition creates a separately visible attempt and consumes parent concurrency/budget accounting.
  • Exhausting the repeat limit produces a clear terminal outcome.
  • Branch-local failure blocks only dependent work by default.
  • Optional global fail-fast prevents new work and cancels or settles active work according to run policy.
  • The run UI exposes evaluated conditions and repeat history without exposing secrets.
  • Tests cover condition truth/error/missing input, skipped branches, repeat success, exhaustion, and fail-fast.

Blocked by

## Parent #311 ## What to build Support conditional workflow paths and bounded review/fix-style repetition without allowing cycles in the DAG. Users can see why nodes ran, skipped, repeated, blocked, or failed. ## Acceptance criteria - [ ] CEL expressions can read a constrained environment of node outcomes and declared JSON artifacts. - [ ] Invalid or unauthorized CEL expressions are rejected when publishing a version. - [ ] Conditional edges make downstream nodes ready or skipped deterministically. - [ ] Repeat-until can wrap a node or subworkflow and requires a positive hard attempt limit. - [ ] Each repetition creates a separately visible attempt and consumes parent concurrency/budget accounting. - [ ] Exhausting the repeat limit produces a clear terminal outcome. - [ ] Branch-local failure blocks only dependent work by default. - [ ] Optional global fail-fast prevents new work and cancels or settles active work according to run policy. - [ ] The run UI exposes evaluated conditions and repeat history without exposing secrets. - [ ] Tests cover condition truth/error/missing input, skipped branches, repeat success, exhaustion, and fail-fast. ## Blocked by - #316 - #317
dries closed this issue 2026-07-16 00:56:09 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
dries/ocman#318
No description provided.