Message feedback and replay mode
Gram Elements introduces experimental message feedback UI with like/dislike buttons and a new replay mode for playing back pre-recorded conversations.
These features enhance both end-user experience and developer workflows by enabling user sentiment collection and demonstration capabilities without requiring authentication or live network calls.
Features
- Message feedback UI #1395 - Added experimental message feedback UI with like/dislike buttons that appear after assistant messages. Enable with
thread.experimental_showFeedback: trueconfig option. Allows users to mark conversations as resolved. (Author: @adaam2 ) - Follow-on suggestions #1381 - Added support for follow-on suggestions within the Elements library, enabling contextual next-step recommendations. (Author: @adaam2 )
- Replay mode and cassette recording #1421 - Added replay mode and cassette recording for Elements. The
<Replay>component plays back pre-recorded conversations with streaming animations — no auth, MCP, or network calls required. TheuseRecordCassettehook and built-in composer recorder button allow capturing live conversations as cassette JSON files. (Author: @adaam2 )
Bug fixes
- Logs page performance #1419 - Memoized config objects and callbacks in Logs page and thread to prevent unnecessary re-renders. Fixed tool group count to use startIndex/endIndex instead of filtering all message parts. Fixed shimmer CSS in shadow DOM. Auto-size charts to container width via ResizeObserver. Truncate large tool output to 50-line preview. Show pulsing dot indicator after tool calls while model is still running. (Author: @adaam2 )
- Dropped react-query dependency #1402 - Dropped the catalog dependency on react-query in favor of a direct dependency, allowing the elements package to be (p)npm linked into other local projects. (Author: @disintegrator )