Answered HITL form stays live in the transcript; submitting it discards the answer and raises a new approval request
- Dominant language
- TypeScript
- Stars
- 1.4k
- Forks
- 205
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 92
Description
> Dev UI issue (prebuilt `adk-web` bundle served by `adk web`) — please transfer to google/adk-web if that is the right home.
If an interrupt is answered through the main chat box, the inline approval form on the earlier event stays enabled. Submitting it posts a `functionResponse` for the already-answered id, which the framework silently drops and turns into a *new* approval request — the user's answer is gone and the workflow now pauses on a question nobody asked. When the same form submits the reply, the UI does clear it, so only replies arriving by another route leave a live form behind.
```
cd dev && npx adk web ../samples/workflows/dynamic --port 8132
# app=human_input, new session:
# 1. main chat box: "please delete the staging database" -> inline form appears on #2
# 2. answer "no" in the MAIN chat box -> #4 "Denied" (interrupt resolved)
# 3. the inline form on #2 is still enabled: type "yes", send
```
```
#5 user functionResponse id=21596d86 (already answered at #3) response={"result":"yes"}
#6 get_user_approval functionCall adk_request_input id=db278be9 <- phantom new request
no handle_process decision event for the "yes" at all
```
Once an interrupt is resolved its form should be disabled or removed. The framework half — accepting a reply to an already-answered id and re-interrupting instead of erroring — is filed separately in adk-js.
Contributor guide
Assessment
This issue has not been assessed yet.