Skip to content

fix(eve): keep text and reasoning blocks when a step resumes after auth#449

Open
serhiizghama wants to merge 2 commits into
vercel:mainfrom
serhiizghama:fix/reducer-text-overwrite-on-step-resume
Open

fix(eve): keep text and reasoning blocks when a step resumes after auth#449
serhiizghama wants to merge 2 commits into
vercel:mainfrom
serhiizghama:fix/reducer-text-overwrite-on-step-resume

Conversation

@serhiizghama

Copy link
Copy Markdown

Closes #436.

When an OAuth authorization resolves mid-step, the runtime resumes the same step — a second step.started/message.completed arrives with the same turnId and stepIndex. defaultMessageReducer keyed text and reasoning parts by stepIndex alone, so the resumed block overwrote the earlier one and useEveAgent().data.messages lost the first assistant message even though it was in the raw stream.

The reducer now updates the current text/reasoning block only while it's still streaming; once a block is done, the next event of the same kind in that step starts a new block instead of replacing it. removeTextPart (null completion) is scoped to the trailing in-progress block too, so an empty delivery can't wipe a block kept from before the resume.

Added a test that feeds the issue's event shape (reasoning + message, auth required/completed, step resumes at the same index) and asserts both text and reasoning blocks survive in order.

Signed-off-by: serhiizghama <zmrser@gmail.com>
Signed-off-by: serhiizghama <zmrser@gmail.com>
@vercel

vercel Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

@serhiizghama is attempting to deploy a commit to the Vercel Team on Vercel.

A member of the Team first needs to authorize it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant