chat-system

Solid

Chat system — MVP pattern, message bus decorators, commands, auto-translation, encrypted history, state machine. Use when adding chat commands, modifying message flow, or working with chat services.

AI & Automation 22 stars 15 forks Updated yesterday Apache-2.0

Install

View on GitHub

Quality Score: 77/100

Stars 20%
45
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Chat System ## Sources - `docs/chat.md` — Chat architecture (MVP, state machine, commands, services, event bus, auto-translation) - `docs/chat-emojis.md` — Emoji atlas creation with TextMesh Pro, noto-emoji font - `docs/chat-history-local-storage.md` — Local encrypted chat history persistence, feature flag control --- ## Architecture Overview The chat system uses **MVP + State Machine + EventBus + Commands**: - **View** (MonoBehaviour): draw-only; forwards UI events - **Presenter** (POCO): listens to View + EventBus, delegates to Commands/Services, updates View - **Model**: embodied by Services and data stores (`IChatHistory`) - **Commands**: single-purpose business logic (e.g., `SendMessageCommand`) - **Services**: long-lived shared state or I/O boundaries (history, member lists, input blocking) - **EventBus**: decoupled comms via `ChatEvents` (no tight coupling between Presenters) - **State Machine**: `ChatStateMachine` controls top-level UI mode; replaces boolean soup - **Composition root**: `ChatPlugin` wires Views, Presenters, Commands, Services, and State Machine ### Component Map | Layer | Key Classes | |-------|------------| | Composition | `ChatPlugin`, `ChatMainSharedAreaController` | | Presenters | `ChatPanelPresenter`, `ChatTitlebarPresenter`, `ChatInputPresenter`, `ChatMessageFeedPresenter`, `ChatChannelsPresenter`, `ChatMemberListPresenter` | | Commands | `SendMessageCommand`, `SelectChannelCommand`, `InitializeChatSystemCommand`, `GetMessageHistoryCom...

Details

Author
decentraland
Repository
decentraland/unity-explorer
Created
3 years ago
Last Updated
yesterday
Language
C#
License
Apache-2.0

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Featured

chatgpt-app-builder

DEPRECATED: This skill has been replaced by `mcp-app-builder`. Check if `mcp-app-builder` is available in the skills folder. If not, install it: `npx skills install mcp-use/mcp-use --skill mcp-app-builder` Use `mcp-app-builder` instead of this skill. Build ChatGPT apps with interactive widgets using mcp-use and OpenAI Apps SDK. Use when creating ChatGPT apps, building MCP servers with widgets, defining React widgets, working with Apps SDK, or when user mentions ChatGPT widgets, mcp-use widgets, or Apps SDK development.

9,994 Updated today
mcp-use
AI & Automation Solid

ai-app

Full-stack AI application generator with Next.js, AI SDK, and ai-elements. Use when creating chatbots, agent dashboards, or custom AI applications. Triggers: chatbot, chat app, agent dashboard, AI application, Next.js AI, useChat, streamText, ai-elements, build AI app, create chatbot

37 Updated 3 days ago
laguagu
AI & Automation Solid

ai-elements

Create new AI chat interface components for the ai-elements library following established composable patterns, shadcn/ui integration, and Vercel AI SDK conventions. Use when creating new components in packages/elements/src or when the user asks to add a new component to ai-elements.

37 Updated 3 days ago
laguagu
AI & Automation Solid

visualize

Render rich interactive visuals — SVG diagrams, HTML widgets, Chart.js charts, interactive explainers — directly inline in chat using the render_visualization tool. Use whenever the user asks to visualize, diagram, chart, draw, map out, or illustrate something, or when a topic has spatial, sequential, or systemic relationships a diagram would clarify better than prose. Also use proactively for data comparisons, metrics, architecture, processes, or mechanisms that benefit from a visual.

367 Updated 4 days ago
Classic298
AI & Automation Featured

understand-chat

Use when you need to ask questions about a codebase or understand code using a knowledge graph

30,632 Updated yesterday
Lum1104