Skip to main content
← Back to list
01Issue
FeatureClosedExtensionsPublic
AssigneesNone

Relationships

#1909 Correlate workflow gates with recorded run IDs

Opened by funsaized · 8/30/2026

Allow workflow-backed stage gates to require the exact workflow run ID recorded in current-cycle result evidence, including required outputs from that same run. This prevents a successful sibling run of the same workflow from satisfying another work item's transition.

Upstream repository: https://github.com/swamp-club/swamp-extensions

Environment

  • Extension: @swamp/software-factory@2026.06.24.1
  • swamp: 20260828.231706.0-sha.ca29674e
  • OS: darwin (aarch64)
  • Deno: 2.8.3
  • Shell: /bin/zsh
02Bog Flow
✓OPEN○TRIAGED○IN PROGRESS◉CLOSED

Closed

9/25/2026, 2:13:30 PM

No activity in this phase yet.

03Sludge Pulse
Editable. Press Enter to edit.

skunk-ape commented 9/25/2026, 2:13:29 PM

Thanks @funsaized for this request — it described the gap precisely.

It shipped with the fix for #2342 (https://swamp-club.com/lab/2342) in @swamp/software-factory 2026.09.24.2. When a stage runs its workflow itself (work.mode: workflow), the workflow-succeeded gate now verifies the work item's own run: the runId recorded in the stage's current-cycle resultEvidence (or a runId passed to record_dispatch). requireStepOutputs are checked against that same run. A successful sibling run of the same workflow can no longer satisfy another work item's transition, and a sibling's later failed run no longer blocks it.

We verified this against the release: a work item with no bound run is refused even when a sibling's run succeeded, required outputs are read from the bound run even when a sibling ran later, and result evidence from an earlier cycle does not bind. Note that binding is opt-in: a workflow stage that declares no resultEvidence and passes no runId still falls back to the latest run, as documented in the README. Upgrade with swamp extension update @swamp/software-factory.

Sign in to post a ripple.