123123213weqw opened a new pull request, #5818: URL: https://github.com/apache/rocketmq-dashboard/pull/5818
## Why When admission cannot build the agent workspace, `sendMessage` persists a warn notice (degraded or unbound) as the run's first timeline event so the missing RocketMQ tools are "discoverable rather than mysterious". But it is written through `AiEventSink.writeTimeline`, which deliberately does not publish a live frame - only `emit()` does. So the client that just sent the message never saw the warning: it only appeared after a reload, once the answer had already started streaming without tools. Everything else in this pipeline keeps the live and replayed renderings identical - the projector's own docs call a tool block that renders differently depending on whether the user watched it a bug. This was the one event that existed only on the replayed side. ## What changed `sendMessage` now also publishes the notice as a `LiveEvent.Notice` frame right after the observer is attached and the replay finishes (so it cannot be buffered or lost), next to the `run_started` frame it accompanies in the transcript. The frame carries seq 0: the persisted row already accounts for it and the observer's watermark already covers that seq. ## Validation Red test first: `aDegradedConversationShouldTellTheLiveStreamTooTest` fails on `upstream-studio` - the emitter receives no `notice` frame at all - and passes with the fix, asserting both the frame count and the degraded-tools message on the wire. Full `AiRunServiceTest` (24 tests) green. -- 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]
