Drupal AI UX meeting 9 Feb 2026
>>> [!note] Migrated issue
<!-- Drupal.org comment -->
<!-- Migrated from issue #3565721. -->
Reported by: [kristen pol](https://www.drupal.org/user/8389)
>>>
<h1 id="drupal-ai-ux-meeting-summary-february-9-2026">Drupal AI UX Meeting Summary: February 9, 2026</h1>
<h2 id="attendees">Attendees</h2>
<p>Aidan Foster, Marcus Johansson, Emma Horrell, Bruno (bbruno), Arian Raeesi, Angela</p>
<hr>
<h2 id="ai-custom-ui-approach-updates-ui-library">AI Custom UI / Approach / Updates / UI Library</h2>
<h3 id="custom-styling-decision">Custom Styling Decision</h3>
<ul>
<li><strong>Problem:</strong> Claro and Gin look completely different for this menu route, and neither supports column-based grouped layouts. Making Gin a dependency or copying its CSS are both non-starters.</li>
<li><strong>Decision:</strong> Create a neutral, custom UI acceptable in both themes — the beginning of the AI module suite's own UI component library.</li>
<li><strong>Implementation:</strong> Uses container queries (not media queries) with a 600px breakpoint for single-column fallback.</li>
<li><strong>Follow-up:</strong> Emma to get input from the CMS team and Sasha (Gin maintainer). Pam unavailable this week.</li>
</ul>
<h3 id="ui-library-component-progress">UI Library Component Progress</h3>
<p>Bruno reported progress on the shared UI library:</p>
<ul>
<li><strong>CSS variables and icons</strong> — MR is up and ready for review. These are needed by AI Dashboard and CCC.</li>
<li><strong>Tooltip component</strong> — Separate MR created and already reviewed by the community. CSS can ship in 1.2, but documentation will wait for 1.3 to avoid version compatibility issues.</li>
<li><strong>AI Dashboard integration</strong> — Implementation ready but postponed until the AI module library changes are merged first.</li>
<li><strong>CCC integration</strong> — Bruno started work on applying the same library changes to CCC.</li>
</ul>
<h3 id="ai-module-release-timeline">AI Module Release Timeline</h3>
<p>Marcus clarified the release schedule:</p>
<ul>
<li><strong>1.2 patch releases:</strong> Every other Wednesday (next one: Feb 18)</li>
<li><strong>1.3 timeline:</strong> Beta available at any time. Release candidate expected end of this week or next. Full release targeted for end of February.</li>
<li>CCC should be able to use 1.3 components by the time it ships.</li>
</ul>
<h3 id="deepchat-expand-fullscreen-3518356-">DeepChat Expand/Fullscreen <span class="drupalorg-gitlab-issue-link project-issue-status-info project-issue-status-7"><a href="https://www.drupal.org/project/ai/issues/3518356" title="Status: Closed (fixed)">#3518356: Add Full screen and Expand options to Deepchat chatbot</a></span></h3>
<p>Bruno's chatbot expansion options (expand sidebar and fullscreen modal) are in the third review cycle. Ahmad Khader provided a thorough code review covering accessibility, state management, and CSS architecture — Bruno has addressed all points. The issue is back to Needs Review. The localStorage persistence question (should expanded state survive close/reopen?) was deferred to a follow-up issue.</p>
<h3 id="context-control-center-layout-update">Context Control Center Layout Update</h3>
<p>Aidan presented an updated CCC layout design with additions since last week:</p>
<ul>
<li><strong>"Time ago" dates</strong> implemented as previously suggested</li>
<li><strong>Context document sources</strong> — badges showing when a context item has an upstream source file (PDF, etc.) that gets extracted to Markdown for the LLM</li>
<li><strong>External context sources</strong> — e.g., calling Google Analytics</li>
<li><strong>Required vs. conditional context</strong> — icons distinguish always-loaded contexts from those loaded by a sub-agent based on relevance</li>
<li><strong>Use cases filter</strong> — added to the top of the interface</li>
<li><strong>Boundaries</strong> — exclusion rules (e.g., don't apply brand guidelines to legal pages)</li>
</ul>
<p>Marcus confirmed the sub-agent approach for conditional context is technically feasible and lightweight. The parent agent describes what it's doing, the sub-agent responds with relevant context entity IDs as a tool response — minimal tokens, no conversation overhead.</p>
<p>Bruno will work on CCC frontend implementation over the next 1-2 sprints.</p>
<hr>
<h2 id="ai-agents-debugger-demo">AI Agents Debugger Demo</h2>
<p>Marcus demoed the <strong>AI Agents Debugger</strong> — a developer-focused module showing every step, tool call, sub-agent interaction, and parameter. While too detailed for end users, it proves all the data is available to surface in a user-facing UI. Marcus noted that developers were choosing Xdebug over the previous agent explorer, which prompted him to build this.</p>
<p>### </p>
<h2 id="tool-calling-ui-in-canvas-chat-and-ai-chat">Tool Calling UI in Canvas Chat and AI Chat</h2>
<h3 id="the-gap">The Gap</h3>
<p>There is currently no UI feedback showing what tool calls an AI agent is making during operations. Users see "talking to agents" with no indication of what's happening or whether it's working or crashed. This was identified as a significant usability gap that every major AI platform (Claude, ChatGPT) has already solved.</p>
<h3 id="design-requirements">Design Requirements</h3>
<p>The team agreed on the following for a collapsible tool call UI:</p>
<ul>
<li><strong>One level of hierarchy</strong> is sufficient for now — a parent operation with nested tool calls underneath</li>
<li><strong>Visual indicator</strong> that something is running (pulsing/spinning animation) so the user knows it hasn't frozen</li>
<li><strong>Human-readable tool call names</strong> when the provider supports it. Provider behavior varies:
<ul>
<li>Anthropic always provides a text message alongside tool calls</li>
<li>OpenAI is inconsistent</li>
<li>Some Ollama models only select tool calls with no accompanying message</li>
</ul>
</li>
<li><strong>Example flow for a Canvas AI content edit:</strong> "Getting page content" → "Searching media library" → "Loading CCC writing guidelines" → "Rendering content" — where the first three may run in parallel (one loop), and rendering is a second loop using a sub-agent</li>
</ul>
<h3 id="technical-considerations">Technical Considerations</h3>
<ul>
<li>Tool calls and sub-agents are technically the same thing (a sub-agent is a tool call with a prompt), but the system knows which is which and can visualize them differently if needed</li>
<li>DeepChat has boxes it can show but nothing specific to tool calling — this needs to be added</li>
<li>Canvas AI uses DeepChat under the hood, but changes to Canvas AI's sidebar layout are a separate issue from toolbar DeepChat</li>
<li>Streaming enables real-time feedback but is hard for a normal Drupal CMS user to set up. Without streaming, the initial orchestration loop (forwarding context to sub-agents) creates a long wait with no visible progress — a potential optimization is storing state and passing references instead of full content</li>
<li><strong>Deepchat doesn't have this feature built in</strong></li>
</ul>
<h3 id="anthropic-s-claude-as-a-reference">Anthropic's Claude as a Reference</h3>
<p>Aidan highlighted Claude Opus 4.6's multi-turn conversation UI as a strong reference — it presents quick-answer options alongside a custom text input, showing thinking states and tool calls in a collapsible hierarchy. The team agreed to use this and other platforms as the basis for design research.</p>
<hr>
<h2 id="decisions">Decisions</h2>
<ul>
<li><strong>Custom UI library over Gin/Claro alignment</strong> — The AI module suite will maintain its own UI component library that looks acceptable in both Claro and Gin.</li>
<li><strong>Tooltip release strategy</strong> — CSS ships in 1.2, documentation appears in 1.3 to prevent version mismatch issues.</li>
<li><strong>Tool call visibility is a priority</strong> — One level of hierarchy, collapsible, with graceful degradation across providers. Design this sprint, implement next.</li>
<li><strong>Container queries for AI overview</strong> — Container queries rather than media queries, since the admin theme controls the container.</li>
<li><strong>Sub-agent approach for conditional CCC context</strong> — Confirmed feasible. Minimal token overhead.</li>
</ul>
<h2 id="questions">Questions</h2>
<ul>
<li>How will the Drupal CMS team react to AI module components looking different from the rest of the Gin admin UI? (Emma following up)</li>
<li>Should expanded chatbot state persist via localStorage? (Deferred to follow-up issue)</li>
<li>What happens to Canvas AI's sidebar when expand/fullscreen features are applied? (Separate from toolbar DeepChat)</li>
</ul>
<hr>
<h2 id="next-steps">Next Steps</h2>
<ul>
<li><strong>Emma Horrell:</strong> Create Drupal.org issue for tool call UI design. Follow up with CMS team and Sasha (Gin) about the custom UI approach.</li>
<li><strong>Angela:</strong> Research tool call UIs across AI platforms (Claude, ChatGPT, etc.), compile screenshots of common patterns, create design mocks inspired by Claude's tool call UI. Target both Canvas UI (priority) and AI Chat.</li>
<li><strong>Bruno:</strong> Continue CCC frontend implementation — note dependency chain: AI Core shared styles <span class="drupalorg-gitlab-issue-link project-issue-status-info project-issue-status-3"><a href="https://www.drupal.org/project/ai/issues/3569769" title="Status: Closed (duplicate)">#3569769: Refactor Context Control Center to use AI Core shared UI library</a></span> need to merge first, then CCC UI design <span class="drupalorg-gitlab-issue-link drupalorg-gitlab-link-wrapper"><a href="https://git.drupalcode.org/project/ai_context/-/work_items/3569313" class="drupalorg-gitlab-link">https://git.drupalcode.org/project/ai_context/-/work_items/3569313</a></span> can proceed, then a new child issue for actual implementation (next sprint). Continue iterating on #3518356 based on review feedback.</li>
<li><strong>Aidan Foster:</strong> Post CCC layout screenshot to Slack for Emma to add to the issue. Continue working with Kristen on CCC implementation details. Create child issue on <span class="drupalorg-gitlab-issue-link drupalorg-gitlab-link-wrapper"><a href="https://git.drupalcode.org/project/ai_context/-/work_items/3569313" class="drupalorg-gitlab-link">https://git.drupalcode.org/project/ai_context/-/work_items/3569313</a></span> for CCC UI implementation (next sprint).</li>
<li><strong>Arian Raeesi:</strong> Add tool call UI issue as placeholder in sprint backlog.</li>
<li><strong>Marcus input needed:</strong> Should we build custom tool call UI features directly in DeepChat, or request the feature upstream from the DeepChat project? This affects timeline and maintenance burden. Needs input from Aidan and Marcus.</li>
</ul>
> Related issue: [Issue #3565719](https://www.drupal.org/node/3565719)
issue