fix(ui): keep failed autonomous tool turns visible#98888
Conversation
|
Thanks for the context here. I swept through the related work, and this is now duplicate or superseded. Close: this PR's useful Control UI fix has been superseded by a clean maintainer replacement at #100514, while this fork branch is now conflicting and carries broad unrelated drift. Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Canonical path: Close this PR and review or land #100514 as the clean candidate for the linked Control UI regression. So I’m closing this here and keeping the remaining discussion on #100514. Review detailsBest possible solution: Close this PR and review or land #100514 as the clean candidate for the linked Control UI regression. Do we have a high-confidence way to reproduce the issue? Yes. Current source still carries the Is this the best way to solve the issue? Yes for the fix shape, but not for this branch. The clean replacement keeps the narrow Security review: Security review cleared: No concrete security or supply-chain issue was found in the intended UI fix; the live branch's broad unrelated drift is a supersession and merge-readiness problem. AGENTS.md: found and applied where relevant. What I checked:
Likely related people:
Codex review notes: model internal, reasoning high; reviewed against 5a31666a06e5. |
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
@clawsweeper re-review Updated the PR body with stored-transcript proof for the current head. The new public artifact shows a real session JSONL read through the Gateway transcript reader/projection path, then grouped by Control UI |
Co-authored-by: qingminlong <[email protected]>
c615771 to
47a0e36
Compare
|
Land-ready at The patch was narrowed through review to the exact Gateway contract: only preserved Verification:
No proof gaps remain for the touched surface. |
|
Landed the reviewed fix as #100514 in commit I rebuilt the patch on current Thank you @qingminglong. For future contributions, keeping Allow edits by maintainers enabled gives us the best chance of applying fixups directly, though GitHub's fork update path can still occasionally prevent a clean ancestry-preserving update. |
Closes #97849
What Problem This Solves
When two autonomous agent turns are adjacent in Control UI history, a successful reply in the later turn could make a failed tool from the earlier turn render as
Tool outputinstead ofTool error.Why This Change Was Made
Gateway chat-history projection preserves
sessions_sendinput provenance while displaying those messages as assistant-side forwarded groups. The Control UI now treats only groups withkind: inter_sessionandsourceTool: sessions_sendas autonomous-turn boundaries before annotating tool outcomes.The final implementation deliberately does not use
senderLabelalone: ordinary relay-labeled assistant replies still count as replies to the current turn. It also preserves the existing behavior for non-text assistant content.User Impact
Earlier autonomous tool failures remain visibly failed when a later autonomous turn recovers, while normal labeled assistant replies continue to mark their own tool turn as successful.
Evidence
Final head:
47a0e36593ddcf3532d88f158128e0f71c1af87d["Tool output", "Tool output"]instead of["Tool error", "Tool output"].tbx_01kwt922gcs3c4p4pvfs42r0ts(coral-barnacle): 136 focused UI tests passed, plus the Chromium end-to-end regression.pnpm check:changedboth passed on the same Testbox lease.["Tool error", "Tool output"]before and after reload.Commands:
Known gaps: no remaining behavior or validation gap identified for the touched Control UI history surface.
AI-assisted: Yes (Codex)