SessionEventComposer
The chat stream of a session, made from its events in the session store: the lane view reads events, not Claude Code's transcript (trove-parts §TPN-10, TPX-38).
| Group | libtrove |
In the namespace octomy::trove::ui. Declared in src/libs/libtrove/trove/ui/SessionEventComposer.hpp.
Detailed description
Each event of the part's types (§TPN-3) becomes at most one message of the shared ChatStreamWidget:
promptis the operator's message,textthe assistant's, and atool_usea chip of one line with the tool and its salient argument. An image of a prompt shows as its placeholder.system,thinking,limitand aturn_endthat did not end well are collapsed cards, set aside from the LLM's own output (§UI-3.6, TPX-10). The title of a card is the subtype of the event.erroris a warning, open. An authentication error says how to sign in (TPX-40).usageandtool_resultare not rows: the header of the lane view sums the usage (TPX-5).- A
systemevent that only counts progress, as Claude Code'sthinking_tokens, is not a row. Claude Code sends one for each step of its thinking, so a card for each one buried the stream under identical cards (trove-unified-ui owner check, 2026-10-19, TUX-28). Thethinkingevent that follows shows the thinking.
See also octomy::trove::ui::SessionEventFollower, octomy::trove::TroveLaneActivity.