Release v3.6.0
Summary
A generalized, topic-based chat for @cratis/components: the sidebar, topics and conversation are pure components fed by host data and callbacks, with an optional Arc observable-query binding on top — and the whole chat kit now themes itself from the --cratis-* tokens.
Added
- Topic-based
Chatcomponent family —ChatSidebar(PrimeReact Drawer opening next to the view),ChatTopicListandChatConversation— with topics and messages handed in as live arrays, aChatMessage/ChatTopicinterface contract the components are generic over, host-side topic auto-naming throughonRequestTopicNamewith a pending placeholder until the name arrives, host-resolved authors withrenderAvatar/renderAuthorNameoverrides, and extensible per-message action descriptors; exported as@cratis/components/Chat(Cratis/Stagehand#52) ChatSidebarForObservableQueries— the sidebar bound to two Cratis Arc observable queries for real-time topics and messages (Cratis/Stagehand#52)@-mention candidates from a host-suppliedresolveMentionCandidatesprovider (sync or async) on the composer and conversation, mentions reported on send, and mentions rendered distinctly in message bodies (Cratis/Stagehand#52)- Mention helpers
findMentionRanges,extractMentionsandmentionSegments, generic over anything with a name (Cratis/Stagehand#52)
Changed
- Every color in the chat kit — panel, bubbles, composer, mention suggestions, emoji and reaction pickers, typing indicator, failure line — now resolves through the
--cratis-*token seam, so the chat follows the host's PrimeReact theme instead of a hardcoded dark palette (Cratis/Stagehand#64)
Fixed
-
Pressing Enter right after picking a mention now sends the message instead of re-picking the same suggestion
-
Region auto-membership events - regions detect items entering and leaving them and publish ItemAddedToRegion/ItemRemovedFromRegion (plus NoteTextChanged and ChatMessageAdded) over the Arc messenger, opt-in and silent without an ArcContext. Merged as #189 and released together with this pull request. (Cratis/Stagehand#49, Cratis/Stagehand#64)