Files
windmill/frontend
Guilhem LemouelandClaude Opus 5 4ac845dde6 refactor: extract ChatViewHost from AIChatManager for the chat view components
The chat view components each read getAiChatManager(), which returns the
AIChatManager class. Its 76 private members mean nothing else can be typed as
one, so no other conversation can render through them.

ChatViewHost is the ~45 members those components actually read, resolved by
getChatViewHost() on its own context key with the manager as the fallback, so
every existing copilot chat keeps working without setting anything. `mode` is
optional on it: a host that leaves it undefined makes AIChatDisplay's existing
`mode === AIMode.X` gates evaluate false, which drops the context picker, file
attachments, MCP, background jobs and suggestions without new flags. Only the
model picker and message editing needed gates of their own.

AIChatDisplay also gains a `placeholder`, and exposes its transcript scroller
plus a scroll callback for a host that paginates older messages.

Behavior is unchanged for the copilot chat.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hw1yzWHyqqZmQrviUEhr5b
2026-08-31 15:55:41 +02:00
..

Windmill frontend

The Windmill frontend written in Svelte 5 + Tailwind CSS

The frontend is under AGPL, see the LICENSE file at the root of this repo