zmuxuny opened a new issue, #7112: URL: https://github.com/apache/rocketmq-dashboard/issues/7112
### Before Creating the Bug Report - [x] I have searched the [open issues](https://github.com/apache/rocketmq-dashboard/issues) of this repository and believe that this is not a duplicate. - [x] This is a defect in RocketMQ Studio, not a usage question and not a defect in another Apache RocketMQ repository. - [x] I can reproduce this on the current `master` branch, or I have stated the exact version I am running below. ### Studio Version rocketmq-studio@127c47b06a268cc74224d5f34c56ec7c36ac0d55; also reproduced on the separate #7109 fix tree. ### Runtime Environment Frontend Vitest/jsdom with real routed AiPage, hooks, transcript and renderers. API responses are controlled. ### Connected RocketMQ Cluster Not cluster-dependent; no live provider or RocketMQ cluster contacted. ### Build Toolchain _No response_ ### Describe the Bug After a newly submitted run finishes, a failed final timeline fetch correctly preserves the live answer and optimistic question. Clicking Retry once the endpoint recovers refreshes only the timeline. The completed live state never learns that the handoff succeeded, so the persisted question/answer appear alongside the retained copies, and the timeline-derived run error remains. ### Steps to Reproduce 1. Open /ai/c/7, submit a prompt, and let its run produce an answer and finish. 2. Fail the final GET /api/ai/conversations/7/events once. 3. Observe the retained answer and Retry control. 4. Restore the endpoint and click Retry. 5. Return the complete terminal timeline and observe duplicated question/answer. ### What Did You Expect to See? Retain the fallback during a pending or failed retry. After a successful owned refresh, replace it with one persisted question/answer and clear the recovered timeline error. A stale retry must not clear a newer run or another conversation; stream errors must remain distinguishable. ### What Did You See Instead? The same real-page regression fails on both unchanged trunk and the independent #7109 fix: expected one question bubble, received two after successful Retry. The retained live answer and stale reload failure also survive the completed handoff. ### Additional Context All-state issue/PR searches covered live blocks+retry, transcript+retry, optimistic+duplicate, refetch+retained, timeline+retry, retained+answer, and refetch+duplicates. #5788 handles initial-load Retry presentation; #6280 normal successful handoff unread counts; #6996 protects live answers during bounded/incomplete timeline reads. #7109 joins the persisted prefix with a still-running attach suffix; this defect concerns a fresh run that has finished and then recovers a failed final read. Production code remains unchanged pending this issue. ### Are You Willing to Submit a Pull Request? - [x] Yes, I am willing to submit a pull request. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
