Floating Chat

A shell-level floating Chat keeps AI conversation available beside any module without replacing the current page.

Overview

Description

Floating Chat keeps the conversational assistant available while the user works elsewhere in Dots. A shell-level poker-chip trigger opens a compact panel containing the same live conversation engine, model and context controls, citations, and thread identity used by the full Chat module. The panel can follow the last active conversation or present a deliberate compact empty state when that pointer is no longer valid.

The host is contributed through the module registry rather than imported directly by the shell. Its overlay band, focus behavior, title menu, sizing, and viewport placement are purpose-built for side-by-side work. Citation activation can hand a row into the shared detail peek, letting the user inspect evidence without navigating away from either the current module or the floating conversation.

Selling Points

  • Keeps AI assistance within reach while users edit Dotabases, inspect Home, or browse Marketplace.
  • Reuses the full conversation engine, so floating work retains real models, context, sources, and history rather than a reduced chat toy.
  • Preserves the underlying module and route, making comparison and iterative action faster.
  • Opens citations in shared peeks, supporting evidence review without closing the panel.
  • Handles stale conversation pointers safely and visibly instead of navigating users to a missing thread.

User Story

A user editing a project row opens Floating Chat, asks for a concise rewrite, and compares the streamed result with the row underneath. They open a cited policy in a side peek, update the row, and close the panel without losing their place in the Dotabase.

Extension Surface

Floating Chat is fixed core UI. apps/web/src/modules/chat/components/float/ChatFloatHost.tsx contributes one sanctioned shell mount, and apps/web/src/modules/chat/components/panel/ChatFloatingPanel.tsx defines its panel anatomy and dimensions. It consumes extensible Chat contracts, but the floating host itself has no supported external replacement or user-authored geometry.

Capabilities & Limits

  • Opens a live Chat conversation over any authenticated shell module.
  • Reuses shared dispatch, context, citation, provider, and history behavior.
  • Integrates with shell overlays and row-detail peeks.
  • Limit: the compact panel has a product-defined size and is not a general multi-window layout system; full history management remains richer in the Chat module.

Implementation Map

  • apps/web/src/modules/chat/components/float/ChatFloatHost.tsx
  • apps/web/src/modules/chat/components/float/ChatFloat.tsx
  • apps/web/src/modules/chat/components/panel/ChatFloatingPanel.tsx
  • apps/web/src/modules/chat/components/panel/ChatPanelConversation.tsx

Properties

Property
Value
product
dots-platform
extensibility
fixed-core
module
Chat, App Shell
packages
apps-web, parts, ui
status
shipped
surface
ui
summary
A shell-level floating Chat keeps AI conversation available beside any module without replacing the current page.

Connections

Floating Chat · Explore connections

  • implemented bytoapps/web/src/modules/chat/components/panel/ChatPanelConversation.tsx
  • implemented bytoapps/web/src/modules/chat/components/panel/ChatFloatingPanel.tsx
  • implemented bytoapps/web/src/modules/chat/components/float/ChatFloat.tsx
  • implemented bytoapps/web/src/modules/chat/components/float/ChatFloatHost.tsx
  • requirestoChat Conversations
  • requirestoApp Shell Navigation

Connected Records6

Implemented by
apps/web/src/modules/chat/components/float/ChatFloat.tsx
apps/web/src/modules/chat/components/float/ChatFloatHost.tsx
apps/web/src/modules/chat/components/panel/ChatFloatingPanel.tsx
apps/web/src/modules/chat/components/panel/ChatPanelConversation.tsx
Requires
6 connections.