zmuxuny opened a new issue, #7109:
URL: https://github.com/apache/rocketmq-dashboard/issues/7109

   ### 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
   
   ### Runtime Environment
   
   Frontend Vitest/jsdom with the real routed AiPage, timeline/stream hooks, 
ChatThread, Markdown renderer, and tool cards. Only API boundaries are 
controlled.
   
   ### Connected RocketMQ Cluster
   
   Not cluster-dependent. No live provider or RocketMQ cluster was contacted.
   
   ### Build Toolchain
   
   _No response_
   
   ### Describe the Bug
   
   When a running conversation is reopened, the timeline loads its persisted 
assistant prefix and the attach stream correctly requests events after the 
loaded cursor. BubbleList nevertheless renders the prefix and the continuation 
as separate assistant answers. A code fence started before reconnect and 
completed afterward is parsed independently in each bubble. A persisted 
tool_use stays in a Running card after its matching tool_done arrives through 
attach; the result becomes a second card with unavailable input. Final timeline 
refresh repairs this only when the whole run ends.
   
   ### Steps to Reproduce
   
   1. Reopen /ai/c/7 while run 41 is RUNNING and its timeline includes a 
partial assistant text block or tool_use.
   2. Attach continues from the timeline cursor (the regression checks 
attachRunStream(41, 2, ...)).
   3. Deliver the remaining text or matching tool_done without ending the run.
   4. Observe two text blocks or two cards for the same tool call.
   
   ### What Did You Expect to See?
   
   Render the persisted prefix and live continuation of the same run as one 
coherent answer. Coalesce adjacent text/thinking, update the matching tool card 
while preserving its arguments, and keep unrelated runs separate. Do not infer 
ownership merely from the last bubble or a reused tool-call id.
   
   ### What Did You See Instead?
   
   Two new real-page regression cases fail against unchanged production code: 
both expect one logical text block/tool card and receive two. Long-running 
reattached responses show fragmented Markdown and conflicting tool states.
   
   ### Additional Context
   
   Searched all-state issues and PRs for reconnect/reattach, attach + bubble, 
reconnect + Markdown, persisted + live + tool, and tool replay duplicates. 
#6411/#6694 concern a terminal run with no tool result; this case has the 
matching result while RUNNING. #4963/#5753 concern server replay 
completeness/registration, not rendering two correctly delivered halves. The 
Markdown fixture uses a bash fence to avoid unrelated language normalizer 
report #6879. Tests and production are kept separate until this issue is opened.
   
   ### 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]

Reply via email to