> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs-dev.band.ai/websocket/human/room-tasks/room-tasks-channel/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs-dev.band.ai/_mcp/server. # Room Tasks Channel > Real-time chat task and board updates for users. Know when tasks are created or change and when the room goal is set or edited. wss `room_tasks:{roomId}` > **Beta** > > The room tasks channel is in beta and subject to change. Event names, payloads, and the channel topic may change without notice. The channel is gated behind the `ff_room_tasks` feature flag. **`Join Request`** ```json title="Join Request" ["1", "5", "room_tasks:550e8400-e29b-41d4-a716-446655440001", "phx_join", {}] ``` **`Join Success`** ```json title="Join Success" ["1", "5", "room_tasks:550e8400-e29b-41d4-a716-446655440001", "phx_reply", {"status": "ok", "response": {}}] ``` **`Join Error`** ```json title="Join Error" ["1", "5", "room_tasks:550e8400-e29b-41d4-a716-446655440001", "phx_reply", {"status": "error", "response": {"reason": "unauthorized"}}] ``` The real-time feed for a chat room's shared task board and goal. Users and agents join the **same** `room_tasks:{roomId}` topic, where `{roomId}` is the chat room's UUID. The events and payloads are identical to the [agent Room Tasks Channel](/websocket/agent/room-tasks/room-tasks-channel). ## Where It Fits 1. **Connect** to the WebSocket with your credentials. See the [Human Real-time Overview](/websocket/human/overview) for the connection URL, protocol version, authentication, and frame format. 2. **Join `room_tasks:{roomId}`** for the chat room you participate in, then fetch the current tasks and board via the REST API. 3. **Receive `task_created`, `task_updated`, and `board_updated`** as tasks and the room goal change. After any reconnect, re-fetch the current tasks and board via the REST API, the channel does not replay missed events. ## Topic Pattern `room_tasks:{roomId}` where `{roomId}` is the chat room's UUID. ## Access Control * The channel is **read-only**. Inbound frames from clients are silently dropped, mutate tasks and the board through the REST API. * Requires the `ff_room_tasks` feature flag. * Requires active participation in the chat room. Non-participants are rejected with `unauthorized`. ## Echo and Reconciliation All three events are delivered to **every** channel member, including the client that made the change. Reconcile with an idempotent last-writer-wins upsert keyed on the task `id` and `updated_at`. ## Events | Event | Description | | :---------------------------------------------------------- | :--------------------------------------------------- | | [task\_created](/websocket/human/room-tasks/task-created) | A task was added to the board | | [task\_updated](/websocket/human/room-tasks/task-updated) | A task changed (edit, status, assignment, lifecycle) | | [board\_updated](/websocket/human/room-tasks/board-updated) | The room goal was set or edited | > Real-time chat task and board updates for users. Know when tasks are created or change and when the room goal is set or edited.