Stale answered ask card: clicking reports question response rejected: not-pending #4271
Replies: 2 comments
|
Solid report — I traced the whole rejection path against rc.2 (HEAD b150a55). The not-pending rejection is the host being authoritative and correct; your diagnosis that the residue is client-side is right, and the source narrows the loss window precisely.
Your evidence that the host-side record stayed pending (custom text later succeeded) fits this exactly: the replayed/updated question carries a NEW rpcId (or the same one still pending), while the zombie card sends the OLD id. Reaping by rpcId-match against the live set is the correct discriminator. |
|
Thanks for the thorough trace. We'll treat the two client-side rules as the upstream direction (reap on not-pending as an idempotent settled signal; re-init reap by rpcId match against the replayed still-pending set). Our engine-side cascade fix is already in place locally. Could the client hardening land in dsh-web? Happy to help verify with the shared repro steps (hot reload or session switch while an ask card is pending). |
Uh oh!
There was an error while loading. Please reload this page.
Background
Regular user; local debugging with an AI assistant.
Issue: stale answer card after a resolved
ask_user_question— clicking reportsquestion response rejected: not-pendingAfter an ask prompt has been answered successfully, if the session happens to go through an event burst (subagent completion notification, hot reload, switching sessions around the same time), the client can lose the
resolvedframe: the answered card stays on screen, and clicking any option is rejected withquestion response rejected: not-pending(the host no longer has the question).Evidence (local)
Suggestion
Client-side hardening for lost
resolvedframes: retry/align card state on reconnect, or reap answered cards via a timeout/async poll — so user clicks on an already-answered card are either ignored silently or reconciled, instead of surfacingnot-pending.All reactions