apache / apache/burr

Consume iterate inputs only on the first step

Open
#910 0 comments 0 reactions 0 assignees View on GitHub
status/needs-triage
Dominant language
Python
Stars
2.5k
Forks
195
Avg merge
6d 10h
Merged PRs (30d)
17

Description

The documented semantics say that inputs are provided to the entry action for a run, but iterate(), aiterate(), and streaming iterate APIs currently pass the same input dictionary to every step.

This can cause later actions to receive unintended entry parameters, allow same-named parameters to alter later behavior, and make sync, async, and streaming execution harder to reason about.

Inputs should be consumed by the first executed step only. Subsequent steps should receive an empty input dictionary, while preserving inputs for first-step halt-before, first-step failure retries, and resumed failed positions.

This issue is tracked by PR #908 and should be called out in the release notes.

Contributor guide

Open the contributing guide

Research direction

Start by tracing iterate(), aiterate(), and the streaming iterate APIs, then compare how they pass inputs across the first and later steps. Use PR #908 as the existing implementation context and verify first-step halt-before, retries, and resumed failed positions; done means later steps receive empty inputs and the release notes call out the change.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.