controller property
The controller driving the transcript.
This view deliberately does NOT surface ChatController.downgradeNotice. The anonymous backend ignores the requested model on every turn, so the notice would fire constantly and drown the case it exists for — the silent cap, where a conversation quietly drops to a smaller model after roughly ten turns. The signal is still on the controller; surface it yourself if your app requests specific models and wants to know.
Implementation
final ChatController controller;