You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Root Cause: History replay (AgentEventAguiReplayer) feeds every stored AgentEvent through the full converter registry on a fresh AguiStreamContext. Stored RequireUserConfirmEvent / suspended tool results are re-converted into new interrupts, and AgentEndEvent re-emits RUN_FINISHED with a RunFinishedInterruptOutcome — so reconnecting replays already-resolved clarifications as live frontend interrupt UI (stuck "Running" state, form re-appearing unsubmitted). Impact: CopilotKit/AG-UI history replay re-activates resolved HITL dialogs; the UI state diverges from the persisted transcript. Severity: high
Suggested direction: during replay, resolve/short-circuit interrupt events against the stored post-confirmation state (emit the resolved tool result instead of a new interrupt), instead of re-running the live interrupt path.
Activity
fix(agui): close dangling suspended tools on replayed resolved runs (a…
feat(agui): add presentation snapshot store and /connect hydrate (age…
oss-maintainer commentedon Sep 14, 2026
Issue Evaluation
Category:
bug| Area:area/ext/integration(copilotkit / AG-UI replay) | Status: ConfirmedRoot Cause: History replay (
AgentEventAguiReplayer) feeds every storedAgentEventthrough the full converter registry on a freshAguiStreamContext. StoredRequireUserConfirmEvent/ suspended tool results are re-converted into new interrupts, andAgentEndEventre-emitsRUN_FINISHEDwith aRunFinishedInterruptOutcome— so reconnecting replays already-resolved clarifications as live frontend interrupt UI (stuck "Running" state, form re-appearing unsubmitted).Impact: CopilotKit/AG-UI history replay re-activates resolved HITL dialogs; the UI state diverges from the persisted transcript.
Severity: high
Suggested direction: during replay, resolve/short-circuit interrupt events against the stored post-confirmation state (emit the resolved tool result instead of a new interrupt), instead of re-running the live interrupt path.
Automated evaluation by github-manager-bot