mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-23 16:36:23 +00:00
Since #65919 the live view seals each chunk of mid-turn assistant commentary (message.interim) as its own finalized bubble. Every bubble with visible text renders the hover action footer, so a tool-heavy turn grew a copy/refresh bar under almost every paragraph — and the live render didn't match rehydration, which merges the turn into one bubble. Mark sealed interim bubbles with ChatMessage.interim, carry the flag into the runtime message metadata (custom.interim), and skip the AssistantFooter for them. The turn's final reply keeps the footer; a previewed final that settles onto an interim bubble clears the mark so the settled reply regains its actions. interim joins COMPARED_FIELDS / chatMessagesEquivalent so flipping it repaints. Also fix an id-collision flake this surfaced: stream/interim bubble ids were Date.now()-only, so an interim seal and the next segment's first delta in the same millisecond reused the id and the new segment appended into the sealed bubble. Ids now include a monotonic sequence. |
||
|---|---|---|
| .. | ||
| bootstrap-installer | ||
| desktop | ||
| shared | ||