# Prompt log — 24h 2026-08-09 ======================================================================== ## [1] summariseModule:ai:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI (Artificial Intelligence) (machine name: ai) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a technical developer audience. Focus on: what was merged or shipped, specific bugs fixed, APIs changed, and what is blocking progress. Be specific — mention function names, module names, and MR references where relevant. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: harivansh sharma (harivansh), project update bot (Project-Update-Bot), Rodel Duterte (rduterte)". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

AI (Artificial Intelligence)

then use

,

,

    /
  • , and as needed. Output only the HTML fragment with no surrounding , , or
    tags. After the project summary prose, add a single subsection titled "

    How can I help on this project?

    " aimed at a developer. Suggest 2-3 concrete technical actions a contributor could take right now. Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, check the data for each issue: - If an issue shows a Related MR with state 'opened', do NOT suggest creating a patch or MR — one already exists. Suggest reviewing it instead. - If all Related MRs for an issue are merged, do NOT suggest reviewing them — they are already done. - If an issue is unassigned with no Related MRs, it is a good candidate to pick up. - Only suggest actions that are genuinely still needed given the current state in the data above. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Add thumbs-up and thumbs-down icons to the shared AI icon set](https://git.drupalcode.org/project/ai/-/work_items/3586660) State: opened | Updated: 2026-08-09 | Author: Aidan Foster (aidanfoster) | Assigned: unassigned | Labels: Description: The shared AI icon set added in #3571220 does not include thumbs-up or thumbs-down. Feedback controls are appearing across the AI ecosystem (AI Answers, AI Content Review) and each one is currently rolling its own, mostly as raw emoji, so the glyph varies by operating system and browser and does not match the rest of the AI admin UI. ## Proposed resolution Add `ai-icon--thumbs-up` and `ai-icon--thumbs-down` variations to `ai_global.css`, sourced from Phosphor per the icon source hierarchy agreed in #3567389. Use these specific icons: - Thumbs up: https://phosphoricons.com/?q=ThumbsUp - Thu… ### [Automated Drupal 12 compatibility fixes for ai 2.0.x-dev](https://git.drupalcode.org/project/ai/-/work_items/3586525) State: opened | Updated: 2026-08-09 | Author: project update bot (Project-Update-Bot) | Assigned: unassigned | Labels: category::task, priority::normal, state::accepted Description: ## Problem/Motivation This is an automated issue to help make this module compatible with Drupal 12. Changes will periodically be added to this issue that remove deprecated API uses. The changes are posted by the [Project Update Bot](https://www.drupal.org/u/project-update-bot) official user account. This account will not receive any issue credit contributions. To stop the bot from posting further updates, post a comment containing `/ProjectUpdateBot:ignore` anywhere in its body. The bot will then leave this issue alone without it needing to be closed. ## Proposed resolution A merge reque… ### [Document FunctionalJavascript test conventions and add CI check for ungrouped/unrecorded tests](https://git.drupalcode.org/project/ai/-/work_items/3582633) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: Rodel Duterte (rduterte) | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !1432 >>> [Tracker] Update Summary: [One-line status update for stakeholders] Short Description: Document FunctionalJavascript test conventions and add CI check for ungrouped/unrecorded tests Check-in Date: MM/DD/YYYY [/Tracker] Problem/Motivation The AI module has a system for running FunctionalJavascript tests in CI that relies on two conventions: Every new FJS test class must have a @group annotation with the issue number it belongs to, so the filter script (scripts/filter-functio… ### [AI Automator Token Replacement with removing unresolved Tokens (Checkbox?)](https://git.drupalcode.org/project/ai/-/work_items/3586535) State: opened | Updated: 2026-08-09 | Author: ro-no-lo | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, Needs review Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1884 [Issue #3586535: AI Automators strip unresolved tokens from prompts](https://git.drupalcode.org/project/ai/-/merge_requests/1884) | State: opened | Author: Rodel Duterte (rduterte), 237 diff lines Description: When we use the Advanced mode with Tokens in the AI Automator settings, Tokens which are not resolved by the Token system stay in the AI Prompt. This is not much text for AI, but everything what can be avoided to send to AI, should be removed. As an example. I have an Entity where I defined a textarea called field_user_prompt which can optionally (!) be used to alter the prompt I setup in the field AI automation. So there is a Token like this: [node:field_user_prompt:value]. This stays when the user left the field empty. It's only replaced when something is filled in. I do think that unresol… ### [Drupal 11.4 DeepChat Block does not work with Webprofiler enabled](https://git.drupalcode.org/project/ai/-/work_items/3586615) State: opened | Updated: 2026-08-09 | Author: jesmaster (Jesmaster) | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: Chatbot was working on Drupal 11.3, I updated to 11.4 and the chatbot doesn't open when clicked anymore, there are no javascript errors in the console log. I deleted the block and re-created it and I'm getting this AJAX error when choosing the assisstant. ### [Introduce a modern AI Chatbot frontend library](https://git.drupalcode.org/project/ai/-/work_items/3586571) State: opened | Updated: 2026-08-09 | Author: Bruno Bruno (bbruno) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: ## Description The current AI Chatbot module is tightly coupled to the DeepChat library. DeepChat does more than render the UI - it also handles the API communication, chat state, and message history. Functionality such as tool calling, conversation history, and thread management is implemented in a DeepChat-specific way, making it difficult to swap in alternative chat interfaces. [assistant-ui](https://www.assistant-ui.com/) was identified as a promising alternative - a React-based component library that supports custom API endpoints and offers significantly easier customization than DeepCha… ### [Provide proper support for "unconfigured" AI provider state](https://git.drupalcode.org/project/ai/-/work_items/3572645) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [mxr576](https://www.drupal.org/user/315522) >>> [Tracker] Update Summary: [One-line status update for stakeholders] Short Description: [One-line issue summary for stakeholders] Check-in Date: MM/DD/YYYY Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation This is the second time we have hit a WSOD with the Gemini provider where simply enabling the module can break pages that instantiate AI provider clients. See #3572638: WSOD after module enabled. At the moment, this does not look like something that can… ### [The Toolbar Chatbot runs the fold out animation on page reload](https://git.drupalcode.org/project/ai/-/work_items/3568246) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !1428 >>> [Tracker] Update Summary: [One-line status update for stakeholders] Short Description: [One-line issue summary for stakeholders] Check-in Date: MM/DD/YYYY Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation The chatbot was greatly improved with #3554510: Sync Design of Toolbar Chatbot with Canvas AI Chatbot, but one issue is that if you have a local storage to remember the position, when its open on page load it runs the open up… ### [ai_ckeditor: streamGenerateContent causes 400 Bad Request with Gemini 2.x models](https://git.drupalcode.org/project/ai/-/work_items/3586425) State: opened | Updated: 2026-08-09 | Author: josecarlosmedero | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: **Problem / Motivation** `AiRequest.php` calls `setStreamedOutput(TRUE)` for all providers. The PHP client `gemini-api-php` sends a malformed request body when calling `streamGenerateContent` against Gemini 2.x models, resulting in `400 Bad Request`. The non-streaming endpoint `generateContent` works correctly with the same payload. The error in logs: `Error invoking model response: Client error: POST https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:streamGenerateContent resulted in a 400 Bad Request response` Confirmed: the identical payload sent to `generateConten… ### [Chatbot closes itself when adding a modal](https://git.drupalcode.org/project/ai/-/work_items/3499451) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [heyyo](https://www.drupal.org/user/474388) Related to !1277 >>> Problem/Motivation ChatBot closes itself, and impossible to reopen-it, without refreshing the page Steps to reproduce 1. Create new content with CKEditor, for example basic page 2. Open ChatBot 3. Add Media into Ckeditor, we can see ChatBot closes 4. Include the Media 5. It's impossible to reopen the ChatBot ### [Preserve HTML in streamed output](https://git.drupalcode.org/project/ai/-/work_items/3586558) State: opened | Updated: 2026-08-09 | Author: Sven Decabooter (svendecabooter) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: ## Summary As reported in https://git.drupalcode.org/project/ai_translate/-/work_items/3585526, there seems to be an issue with HTML processing in streamed outputs. I wasn't able to look into the issue much closer, but the proposed fix seems to imply changes to the AI core module. ## Environment - Drupal version: 11.3.10 - Paragraphs: 8.x-1.20 Original Issue When translating basic pages, the LLM inserts \ tags after other tags like \ Example input: ``` 'De Geheimen van het Hof' is een reeks van zes speurtochten voor klassen: van het 1ste leerjaar tot en met het 6de leerjaar. De focus lig… ### [Indexing breaks with custom SearchAPI DataSource](https://git.drupalcode.org/project/ai/-/work_items/3575992) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [mxr576](https://www.drupal.org/user/315522) Related to !1321 !1248 >>> [Tracker] Update Summary: [One-line status update for stakeholders] Check-in Date: MM/DD/YYYY Blocked by: [#XXXXXX] (New issues on new lines) Additional Collaborators: @username1, @username2 Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation We have a homegrown Search API that indexes things :tm: but they are not content entities and the data source does not extend \Drupal\search_api\Plugin\search_api\datasource\ContentEntity. Wh… ### [Accept input and output as typed interfaces in the AI request events](https://git.drupalcode.org/project/ai/-/work_items/3567673) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [murz](https://www.drupal.org/user/157092) Related to !1104 >>> [Tracker] Update Summary: [One-line status update for stakeholders] Short Description: [One-line issue summary for stakeholders] Check-in Date: MM/DD/YYYY Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Now the AI Event constructors accept the $input argument as mixed type in the class Drupal\ai\Event\AiProviderRequestBaseEvent, and the same for $output in the Drupal\ai\Event\AiProviderResponseBaseEvent. There should be always typed dat… ### [non streaming broken (fiber branch)](https://git.drupalcode.org/project/ai/-/work_items/3586457) State: opened | Updated: 2026-08-09 | Author: wouters_f (wouters_frederik) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Description: ## Summary `OpenAiBasedProviderClientBase::chat()` contains a Fiber branch (line 341) that silently forces streaming on any call executed inside a PHP Fiber, even when the caller never requested streaming. This breaks non-streaming AI calls made from within Fiber-based execution contexts (e.g. `ai_search_block` with streaming disabled in block config). ## Root cause The condition on line 341 is: ```php elseif (\Fiber::getCurrent() && in_array(AiProviderCapability::StreamChatOutput, $this->getSupportedCapabilities())) { ``` `\Fiber::getCurrent()` alone is too broad — it fires for any code … ### [Fix Translate Text Explorer form functionality](https://git.drupalcode.org/project/ai/-/work_items/3553353) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [jhuhta](https://www.drupal.org/user/3387868) Related to !1333 !963 >>> Problem/Motivation When using the Translate Text Explorer, it always results in an exception: An error occurred The following error occurred while processing your request: Form errors cannot be set after form validation has finished. Of the following exception type: LogicException The reason seem to be the inconsistent use of a prefix in the form code. Steps to reproduce (required for bugs, but not feature requests) Have an translate text type of a provider (like ai_provider_d… ### [[AI Prompts] Update the Type Casing of Entities/Permissions](https://git.drupalcode.org/project/ai/-/work_items/3574417) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [robloach](https://www.drupal.org/user/61114) Related to !1223 >>> [Tracker] Update Summary: Created the issue Short Description: Update the casing of AI Prompt Types Check-in Date: 02/18/2026 Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Following #3567796: UX: AI Prompts: Improve UX around initial setup, the AI Prompts user interface has a mix of letter casing. For example: "AI Prompt type". Would be good to consolidate them so that they're all using Title Case, as similar with other entities ac… ### [How does the provider notify of better models](https://git.drupalcode.org/project/ai/-/work_items/3575689) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) >>> [Tracker] Update Summary: [One-line status update for stakeholders] Short Description: [One-line issue summary for stakeholders] Check-in Date: MM/DD/YYYY Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation We are currently setting opinionited default models in many providers as the default provider/model for a specific operation type if nothing already exists. The problem with this is that AI world moves really fast, so a model that was top of t… ### [Research: Open standard for saving one request](https://git.drupalcode.org/project/ai/-/work_items/3566569) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: harivansh sharma (harivansh) | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) >>> [Tracker] Update Summary: [One-line status update for stakeholders] Short Description: Research an open standard for exporting and importing a single AI request between logging, observability, and AI API Explorer. Check-in Date: MM/DD/YYYY [/Tracker] Problem/Motivation We currently have multiple developer and observability tools such as AI Logging, AI Observability, and AI API Explorer, each capturing AI requests in different formats and at different stages. When a request fails or behaves un… ### [Provide AI usage reports in Drupal admin panel](https://git.drupalcode.org/project/ai/-/work_items/3535260) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: Alexey Korepov (murz) | Labels: 2026Sprint14, 2026Sprint16, AI Initiative Sprint, Vienna2025 Description: >>> [!note] Migrated issue Reported by: [tonytosta](https://www.drupal.org/user/262359) Related to !826 >>> The AI module bundle should provide an easy way to view calls to AI providers - log requests and responses locally, build usage reports, available directly in the Drupal admin panel out of the box, without using any external tools. Steps to reproduce (required for bugs, but not feature requests) I will list these steps even though it is not required: Install AI module Install AI Usage Reports module See usage reports in the Drupal admin panel: logs of requests and responses, aggreg… --- MERGE REQUESTS (24h) --- ### [AI Agents framework built on Symfony AI Agent](https://git.drupalcode.org/project/ai/-/merge_requests/1923) State: opened | Author: harivansh sharma (harivansh) | Branch: 3586510-ai-agent-v1 | 17433 diff lines Description: ## Description Adds the `ai_agent` module: an AI Agents framework built on Symfony AI (`^0.12`). Runtimes are plugins: `drupal_ai` (the loop this module owns, with per-iteration events and durable checkpoints) and `symfony_ai` (wraps the vendor `AgentProcessor`). Agents, controls and input processors are plugin types; agents can also be `ai_agent` config entities. A control can pause a run for human approval and resume it in a later request. Ships 6 controls (`system_context`, `deny_tool`, `require_tool`, `force_arguments`, `require_approval`, `return_directly`), Drush commands (`agent:list… ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/ai/-/merge_requests/1673) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 5400 diff lines Description: Relates to #3586525. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-916232. --- COMMITS (24h) --- (none) ======================================================================== ## [2] summariseModule:ai_initiative:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Drupal AI Initiative (machine name: ai_initiative) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a technical developer audience. Focus on: what was merged or shipped, specific bugs fixed, APIs changed, and what is blocking progress. Be specific — mention function names, module names, and MR references where relevant. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. Do not name any individual people in this section. No one was active enough this period to list. Format your response as an HTML fragment. Start with

    Drupal AI Initiative

    then use

    ,

    ,

      /
    • , and as needed. Output only the HTML fragment with no surrounding , , or
      tags. After the project summary prose, add a single subsection titled "

      How can I help on this project?

      " aimed at a developer. Suggest 2-3 concrete technical actions a contributor could take right now. Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, check the data for each issue: - If an issue shows a Related MR with state 'opened', do NOT suggest creating a patch or MR — one already exists. Suggest reviewing it instead. - If all Related MRs for an issue are merged, do NOT suggest reviewing them — they are already done. - If an issue is unassigned with no Related MRs, it is a good candidate to pick up. - Only suggest actions that are genuinely still needed given the current state in the data above. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [[META] 2026 AI Inside Roadmap to DrupalCon Rotterdam 2026](https://git.drupalcode.org/project/ai_initiative/-/work_items/3586657) State: opened | Updated: 2026-08-10 | Author: Christoph Breidert (breidert) | Assigned: Christoph Breidert (breidert) | Labels: AI Initiative, ai::inside, roadmap Description: ## Why this roadmap exists At DrupalCon Rotterdam at the end of September we want to show a single Drupal site where AI Search, AI content review, AI translation, an editor-facing chat, observability and guardrails all work together on real, multilingual content. Rather than describing these features one by one, we let people see them working together on one site, and we let anyone launch that site for themselves in a few seconds on Drupal Forge. Most of these features already work today. The gap is almost never the core capability. The gap is that we have not yet shipped the recipes and dem… ### [Drupal AI UX meeting 3 August 2026](https://git.drupalcode.org/project/ai_initiative/-/work_items/3586607) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: category::task, meetings, priority::normal, state::accepted Description: ## Meeting Overview **Date:** Monday, August 3, 2026 **Attendees:** Aidan, Marcus, Emma, Bruno, Darren, Shashank, Kati Aidan back from leave and chairing; welcomed two new contributors (Shashank, Kati). ## Topics - **AI demo:** Installable demo bundling AI Content Review, CCC, Guardrails, AI Search, and Canvas AI (with Christoph/1X, on Drupal Forge); likely a higher-ed site, feeding the Rotterdam DriesNote. Recipe does not yet install cleanly; focus is a post-install site that explains its own features. - **EU AI Act Article 50 disclosure {#3586640}:** New separate module for AI content … ### [[META] 2026 Outside-in / Innovation Roadmap (draft)](https://git.drupalcode.org/project/ai_initiative/-/work_items/3576908) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: scott falconer (scottfalconer) | Labels: category::plan, priority::normal, roadmap, state::accepted Description: > **Updated July 23, 2026.** This is the living control issue for the Outside AI workstream. It replaces the earlier “Outside-in / Innovation” framing with an outcome-based roadmap. > > The issue links below are a deliberately small working set, not an exhaustive dependency map. We will refresh them as work lands, moves, or is replaced. The linked queues remain authoritative. Linking an issue here does not change its owner, priority, milestone, or technical direction. > > The previous detailed ticket inventory remains available in this issue’s edit history. Work not carried forward is not bein… ### [[Meta] AI Content Review Workflow](https://git.drupalcode.org/project/ai_initiative/-/work_items/3545606) State: closed | Updated: 2026-08-09 | Author: drupalbot | Assigned: Christoph Breidert (breidert) | Labels: 2026Sprint14, 2026Sprint16, AI Initiative Sprint, ai::inside Description: >>> [!note] Migrated issue Reported by: [breidert](https://www.drupal.org/user/135619) >>> Goals & Guiding Principles Provide a native Drupal way to review content with the help of AI through an intuitive user interface. This functionality should integrate seamlessly with Drupal's existing content management workflows while offering AI-powered assistance for common editorial tasks. Key principles: Examples include AI-powered content rating systems, automated suggestions for guideline compliance, content flagging for review, brand voice consistency checks, and legal/regulatory complianc… ### [Start setting up AI Starterkit](https://git.drupalcode.org/project/ai_initiative/-/work_items/3569199) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) >>> [Tracker] Update Summary: [One-line status update for stakeholders] Short Description: Research and initial setup for AI Starterkit showcase website Check-in Date: MM/DD/YYYY [/Tracker] Problem/Motivation There is a growing need to demonstrate the full production capabilities of the AI Initiatives ecosystem in a concrete, opinionated, and easy-to-consume way. While the AI module and related projects provide powerful building blocks, there is currently no canonical showcase that ties these tog… ### [Create documentation on how to create issues that are testable on DrupalForge](https://git.drupalcode.org/project/ai_initiative/-/work_items/3583362) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint16, AI Initiative Sprint, ai::inside Description: >>> [!note] Migrated issue Reported by: [afoster](https://www.drupal.org/user/594458) >>> [Tracker] Update Summary: Blocked — document how to create DrupalForge-testable issues spanning multiple dev module versions Check-in Date: 04/13/2026 Additional Collaborators: Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Many AI issues span multiple modules at once. For example, when we work on UI improvements in the AI module and need to use those same improvements in CCC, reviewers need dev versions of both modules installed together to t… ### [GitLab workflow automation for AI Initiative repos (exploration + rollout)](https://git.drupalcode.org/project/ai_initiative/-/work_items/3586474) State: opened | Updated: 2026-08-09 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint16, AI Initiative, AI Initiative Sprint Description: ## Summary Build out an automated GitLab workflow layer for the Drupal AI Initiative's GitLab projects (`project/ai`, `project/ai_agents`, providers, etc.) so that issue and MR housekeeping — state transitions, label hygiene, completeness checks, dependency review pings — happens automatically instead of requiring manual maintainer effort. This is split into two phases: 1. **Exploration** — evaluate which Drupal-side platform is the right host for the automation logic (Rules, ECA, or a custom module on top of [`gitlab_api`](https://www.drupal.org/project/gitlab_api)). 2. **Automation rollou… ### [UX: Install and investigate WordPress 7.x for new AI features](https://git.drupalcode.org/project/ai_initiative/-/work_items/3586595) State: opened | Updated: 2026-08-09 | Author: Aidan Foster (aidanfoster) | Assigned: Aidan Foster (aidanfoster) | Labels: 2026Sprint14, 2026Sprint16, AI Initiative Sprint, ai::inside Description: **Problem/Motivation** WordPress 7.x has shipped a set of new AI features that overlap with areas we're building in the Drupal AI initiative. We should set up an instance and evaluate what they've done, both to learn from their UX decisions and to identify anything worth referencing in our own work. **Proposed resolution** Install a fresh WordPress 7.x instance and investigate its AI features, focusing on: * **Configuration & setup** — evaluate their labels and setup flow as a reference for our own naming/labeling decisions. * **Other features & help documentation** — note any additional A… ### [Create AI Validations Recipe](https://git.drupalcode.org/project/ai_initiative/-/work_items/3585699) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint16, AI Initiative Sprint, ai::inside Description: >>> [!note] Migrated issue Reported by: [breidert](https://www.drupal.org/user/135619) >>> [Tracker] Update Summary: [One-line status update for stakeholders] Check-in Date: MM/DD/YYYY Additional Collaborators: Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Description We want to create a new Drupal AI recipe in a separate project ai_recipe_validations, that provides a turnkey configuration for the AI Validations module. This recipe is intended to be used in the Drupal AI Demo and must be fully compatible with Drupal CMS (Starshot). Instead of creating new… --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- (none) ======================================================================== ## [3] summariseModule:ai_integration_eca:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI Integration - ECA (machine name: ai_integration_eca) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a technical developer audience. Focus on: what was merged or shipped, specific bugs fixed, APIs changed, and what is blocking progress. Be specific — mention function names, module names, and MR references where relevant. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: project update bot (Project-Update-Bot)". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

      AI Integration - ECA

      then use

      ,

      ,

        /
      • , and as needed. Output only the HTML fragment with no surrounding , , or
        tags. After the project summary prose, add a single subsection titled "

        How can I help on this project?

        " aimed at a developer. Suggest 2-3 concrete technical actions a contributor could take right now. Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, check the data for each issue: - If an issue shows a Related MR with state 'opened', do NOT suggest creating a patch or MR — one already exists. Suggest reviewing it instead. - If all Related MRs for an issue are merged, do NOT suggest reviewing them — they are already done. - If an issue is unassigned with no Related MRs, it is a good candidate to pick up. - Only suggest actions that are genuinely still needed given the current state in the data above. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Automated Drupal 12 compatibility fixes for ai_integration_eca 1.0.x-dev](https://git.drupalcode.org/project/ai_integration_eca/-/work_items/3585018) State: opened | Updated: 2026-08-09 | Author: project update bot (Project-Update-Bot) | Assigned: unassigned | Labels: category::task, priority::minor, state::accepted Description: ## Problem/Motivation This is an automated issue to help make this module compatible with Drupal 12. Changes will periodically be added to this issue that remove deprecated API uses. The changes are posted by the [Project Update Bot](https://www.drupal.org/u/project-update-bot) official user account. This account will not receive any issue credit contributions. To stop the bot from posting further updates, post a comment containing `/ProjectUpdateBot:ignore` anywhere in its body. The bot will then leave this issue alone without it needing to be closed. ## Proposed resolution A merge reque… --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/ai_integration_eca/-/merge_requests/13) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 478 diff lines Description: Relates to #3585018. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-916232. --- COMMITS (24h) --- (none) ======================================================================== ## [4] stripNameAttribution:ai_integration_eca ======================================================================== You are correcting a project digest section. The prose wrongly attributes work to specific people. Rewrite only the sentences that name any of these people so they describe the work in the passive voice without naming anyone: project update bot Rules: - Do not name any of those people anywhere except a trailing "Contributors:" line. - Keep the trailing "Contributors: project update bot (Project-Update-Bot)" line exactly as-is (add it if missing). - Leave every other sentence, HTML tag, link, and citation exactly as-is. - Output the full corrected fragment and nothing else. --- SECTION ---

        AI Integration - ECA

        An automated merge request for Drupal 12 compatibility was opened during this period. The Automated Project Update Bot fixes MR addresses deprecated API usage identified in the Automated Drupal 12 compatibility fixes for ai_integration_eca 1.0.x-dev issue. The merge request contains 478 lines of changes targeting the project-update-bot-only branch. No commits were merged during the reporting period, leaving the Drupal 12 compatibility work pending review and integration.

        How can I help on this project?

        Review the Automated Project Update Bot fixes merge request to validate the Drupal 12 compatibility changes. Test the proposed deprecation removals against current Drupal 12 APIs to ensure functionality is preserved. Provide feedback on the MR to help move it toward merge.

        Contributors: project update bot (Project-Update-Bot) ======================================================================== ## [5] summariseModule:ai_agents_test:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI Agents Test (machine name: ai_agents_test) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a technical developer audience. Focus on: what was merged or shipped, specific bugs fixed, APIs changed, and what is blocking progress. Be specific — mention function names, module names, and MR references where relevant. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. Do not name any individual people in this section. No one was active enough this period to list. Format your response as an HTML fragment. Start with

        AI Agents Test

        then use

        ,

        ,

          /
        • , and as needed. Output only the HTML fragment with no surrounding , , or
          tags. After the project summary prose, add a single subsection titled "

          How can I help on this project?

          " aimed at a developer. Suggest 2-3 concrete technical actions a contributor could take right now. Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, check the data for each issue: - If an issue shows a Related MR with state 'opened', do NOT suggest creating a patch or MR — one already exists. Suggest reviewing it instead. - If all Related MRs for an issue are merged, do NOT suggest reviewing them — they are already done. - If an issue is unassigned with no Related MRs, it is a good candidate to pick up. - Only suggest actions that are genuinely still needed given the current state in the data above. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Run more than one test group in Bulk - Test Collections?](https://git.drupalcode.org/project/ai_agents_test/-/work_items/3541324) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [yautja_cetanu](https://www.drupal.org/user/626050) Related to !11 >>> Problem/Motivation When doing automated tests or just trying different models and not using Tests to help with prompt engineering its good to just fire off all the same tests you want and get the overall results. Steps to reproduce Proposed resolution Maybe make views bulk operation style UI so you can click a checkbox next to the test groups you want to run and also run all. Or we could have a Tag on test groups and run all of a specific tag? Maybe this is better if we are goin… --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- (none) ======================================================================== ## [6] summariseModule:gemini_provider:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Gemini Provider (machine name: gemini_provider) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a technical developer audience. Focus on: what was merged or shipped, specific bugs fixed, APIs changed, and what is blocking progress. Be specific — mention function names, module names, and MR references where relevant. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. Do not name any individual people in this section. No one was active enough this period to list. Format your response as an HTML fragment. Start with

          Gemini Provider

          then use

          ,

          ,

            /
          • , and as needed. Output only the HTML fragment with no surrounding , , or
            tags. After the project summary prose, add a single subsection titled "

            How can I help on this project?

            " aimed at a developer. Suggest 2-3 concrete technical actions a contributor could take right now. Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, check the data for each issue: - If an issue shows a Related MR with state 'opened', do NOT suggest creating a patch or MR — one already exists. Suggest reviewing it instead. - If all Related MRs for an issue are merged, do NOT suggest reviewing them — they are already done. - If an issue is unassigned with no Related MRs, it is a good candidate to pick up. - Only suggest actions that are genuinely still needed given the current state in the data above. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Image Embeddings](https://git.drupalcode.org/project/gemini_provider/-/work_items/3588392) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !35 >>> [Tracker] Update Summary: [One-line status update for stakeholders] Check-in Date: MM/DD/YYYY Additional Collaborators: Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Gemini is one of the only providers that has file embeddings, outside of AWS Titan. This means that you can index and search using an image and image likeness. Currently the embedding solution only allows for text, we should add at least images here (and think … ### [Implement getSupportedCapabilities method in Provider class](https://git.drupalcode.org/project/gemini_provider/-/work_items/3589184) State: opened | Updated: 2026-08-09 | Author: Artem Dmitriiev (a.dmitriiev) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: The `AiProviderInterface` has method ```php /** * Returns the supported capabilities for this provider. * * @return array * List of supported capabilities. */ public function getSupportedCapabilities(): array; ``` This method exposes the capabilities of the provider. The base class implements this method, but obviously it returns empty array as each instance of the plugin has its own values. In this issue https://git.drupalcode.org/project/ai/-/work_items/3586425 the check of capabilities will be added. As Gemini provider at the moment doesn't state that it is capable … ### [Add support for batch embeddings](https://git.drupalcode.org/project/gemini_provider/-/work_items/3589183) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: "state::needsReview" It was decided on the naming. I have updated MR and also adjusted CI to load the needed branch of AI Core, 2026Sprint14, 2026Sprint15, 2026Sprint16 Description: >>> [!note] Migrated issue Reported by: [a.dmitriiev](https://www.drupal.org/user/3235287) Related to !37 >>> [Tracker] Update Summary: [One-line status update for stakeholders] Check-in Date: MM/DD/YYYY Additional Collaborators: Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation As a follow up to this issue https://git.drupalcode.org/project/ai/-/work_items/3568648 it would be nice to add support of batch embeddings as Gemini models can do that. Proposed resolution Use method batchEmbedContents from Gemini client when EmbeddingsInput conta… --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- (none) ======================================================================== ## [7] summariseModule:mcp:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Model Context Protocol (machine name: mcp) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a technical developer audience. Focus on: what was merged or shipped, specific bugs fixed, APIs changed, and what is blocking progress. Be specific — mention function names, module names, and MR references where relevant. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: Shubham Goel (shubhamgoel)". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

            Model Context Protocol

            then use

            ,

            ,

              /
            • , and as needed. Output only the HTML fragment with no surrounding , , or
              tags. After the project summary prose, add a single subsection titled "

              How can I help on this project?

              " aimed at a developer. Suggest 2-3 concrete technical actions a contributor could take right now. Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, check the data for each issue: - If an issue shows a Related MR with state 'opened', do NOT suggest creating a patch or MR — one already exists. Suggest reviewing it instead. - If all Related MRs for an issue are merged, do NOT suggest reviewing them — they are already done. - If an issue is unassigned with no Related MRs, it is a good candidate to pick up. - Only suggest actions that are genuinely still needed given the current state in the data above. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). (none) --- MERGE REQUESTS (24h) --- ### [#3569845: Add Oauth Scope Validation](https://git.drupalcode.org/project/mcp/-/merge_requests/44) State: opened | Author: Shubham Goel (shubhamgoel) | Branch: 3569845-add-oauth-scope | 865 diff lines Description: Closes #3569845 --- COMMITS (24h) --- (none) ======================================================================== ## [8] summariseModule:ai_agents:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI Agents (machine name: ai_agents) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a technical developer audience. Focus on: what was merged or shipped, specific bugs fixed, APIs changed, and what is blocking progress. Be specific — mention function names, module names, and MR references where relevant. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: project update bot (Project-Update-Bot)". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

              AI Agents

              then use

              ,

              ,

                /
              • , and as needed. Output only the HTML fragment with no surrounding , , or
                tags. After the project summary prose, add a single subsection titled "

                How can I help on this project?

                " aimed at a developer. Suggest 2-3 concrete technical actions a contributor could take right now. Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, check the data for each issue: - If an issue shows a Related MR with state 'opened', do NOT suggest creating a patch or MR — one already exists. Suggest reviewing it instead. - If all Related MRs for an issue are merged, do NOT suggest reviewing them — they are already done. - If an issue is unassigned with no Related MRs, it is a good candidate to pick up. - Only suggest actions that are genuinely still needed given the current state in the data above. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Automated Drupal 12 compatibility fixes for ai_agents 1.4.x-dev](https://git.drupalcode.org/project/ai_agents/-/work_items/3586038) State: opened | Updated: 2026-08-09 | Author: project update bot (Project-Update-Bot) | Assigned: unassigned | Labels: category::task, priority::normal, state::accepted Description: ## Problem/Motivation This is an automated issue to help make this module compatible with Drupal 12. Changes will periodically be added to this issue that remove deprecated API uses. The changes are posted by the [Project Update Bot](https://www.drupal.org/u/project-update-bot) official user account. This account will not receive any issue credit contributions. To stop the bot from posting further updates, post a comment containing `/ProjectUpdateBot:ignore` anywhere in its body. The bot will then leave this issue alone without it needing to be closed. ## Proposed resolution A merge reque… ### [Add limits on how often a tool can run](https://git.drupalcode.org/project/ai_agents/-/work_items/3547995) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !224 >>> Problem/Motivation Right now we have to tell the system prompt how often it is allowed to use a specific tool. But there should also be a determenistic way, where if the tool gets stuck in a loop or searches to no awail in a RAG database for instance, we need to be able to programatically say how many times a tool can run. Proposed resolution Add a form value of how many times a tool can run. Add a form for setting the error message when this happens. If the tool has run tha… ### [Let an agent use a role when running a tool](https://git.drupalcode.org/project/ai_agents/-/work_items/3518167) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !87 >>> Problem/Motivation Currently the modus operandi is that the permissions checks that happens in tools, happens on the session that is running it. In AI Agents Explorer or the AI Assistants API, this means the user that triggers the query. There are however cases where agents should be completely autonomous or where they are triggered in queues/cron jobs, where there is no sessions attached. In those cases it should be possible for the person that sets up the agent to be able to… ### [[DISCUSS] Make it possible to create tool instances](https://git.drupalcode.org/project/ai_agents/-/work_items/3552038) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !232 >>> Problem/Motivation Currently you can only use one tool per agent. This is restrictive with tools that are fairly generic. It would be nice if we could create tool instances. Also right now the tool configuration is a little bit over the place and doesn't have a schema. We should add this at the same time as well. [DISCUSS] This is part of a wider discussion, is this linked to composible issues? Is this the right way of doing it? Proposed resolution * Add so you can add tools … ### [Allow agents to have permissions, user or a role](https://git.drupalcode.org/project/ai_agents/-/work_items/3586019) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: scott falconer (scottfalconer) | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) >>> Problem/Motivation There are two problems right now in terms of agents and roles/permissions: 1. If we use only the end-users permissions, the agent itself will have the same permissions, and wide generic tools that are not constrained, might be used as attack vectors via prompt injection. 2. When autonomous agents runs in cron, ECA or something else, they run as an anonymous user, meaning that they might not be able to solve what they want to solve, because they don't have enough permissions… ### [AI Agent entity form should reject machine names that collide with existing code-plugin IDs](https://git.drupalcode.org/project/ai_agents/-/work_items/3586026) State: opened | Updated: 2026-08-09 | Author: Ahmad Khalil (ahmad-khalil-imagex) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: Project: AI Agents\ Component: Code\ Version: 1.4.x\ Issue type: Bug **Problem/Motivation** AiAgentManager merges two types of plugin definitions under a single ID namespace: 1. Code-defined AiAgent plugins discovered via parent::findDefinitions(). 2. ai_agent config entities, merged in by AiAgentManager::findDefinitions() at src/PluginManager/AiAgentManager.php:196. When an admin saves an ai_agent config entity with a machine name that matches an existing code-plugin ID, two failure modes occur: 1. The config entity is silently dropped from plugin discovery — the merge in findDefinitions… ### [Make it possible to restrict the order of tools during agent executions](https://git.drupalcode.org/project/ai_agents/-/work_items/3560681) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint16, AI Initiative Sprint, ai::inside Description: >>> [!note] Migrated issue Reported by: [shashikanth171](https://www.drupal.org/user/3516867) Related to !252 >>> Problem/Motivation AI Agent can sometimes execute tools in an order that doesn't make any sense. We can avoid this by improving the prompt template, making it more verbose with trial and error. Need to somehow allow configuration of each tool, to set which tool should be run prior to it. We can also expand it by including conditions like should be executed 1. only once, 2. first, 3. last etc. Depending on the tool and use case, configuring the agent with such restrictions will… ### [Use the `ai_json_schema` editor for the AI Agent structured-output schema field](https://git.drupalcode.org/project/ai_agents/-/work_items/3586042) State: opened | Updated: 2026-08-09 | Author: Ahmad Khader (Ahmad-Khader) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint16, AI Initiative Sprint, ai::inside Description: ## Description The AI Agent form renders the **structured output** JSON schema as a plain `textarea` (`AiAgentForm::buildFormMetadata()`, `$form['prompt_detail']['structured_output_detail']['structured_output_schema']`). That makes a schema cumbersome to add (no validation or editor affordances, easy to ship malformed JSON) and hard to read once saved (a wall of escaped JSON). Switch it to the AI module's dedicated `'#type' => 'ai_json_schema'` element (`Drupal\ai\Element\AiJsonSchema`), so adding a schema uses a purpose-built CodeMirror editor (syntax highlighting, JSON linting) and a saved… ### [feat: Per-tool approval mode (pre-approved / approve-once / always) with loop pause-resume](https://git.drupalcode.org/project/ai_agents/-/work_items/3586020) State: opened | Updated: 2026-08-09 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: ## Problem / motivation Agents currently invoke tools without a built-in approval gate. For destructive or sensitive tools (writing content, sending email, calling external APIs, running shell commands, etc.) this is risky — the agent can act before a human has a chance to review. Tools like [Claude Code](https://docs.claude.com/en/docs/claude-code) and [OpenAI Codex CLI](https://github.com/openai/codex) solve this by gating each tool call (in their case, each shell command) behind a per-tool approval policy. The user can mark a tool as always-allowed, approve-once-per-session, or always-pro… ### [Allow callers to supply additional tags for the chat calls made by AiAgentEntityWrapper](https://git.drupalcode.org/project/ai_agents/-/work_items/3586055) State: opened | Updated: 2026-08-09 | Author: Abhisek Mazumdar (abhisekmazumdar) | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: ## Problem/Motivation Modules that drive an agent programmatically have no way to tag the chat calls the agent makes, which breaks `ai_logging` correlation for anything beyond "the whole run". `AiAgentEntityWrapper` builds a fixed tag set right before each provider call (`src/PluginBase/AiAgentEntityWrapper.php`, currently around line 536): ```php $tags = [ 'ai_agents', 'ai_agents_' . $this->aiAgent->id(), 'ai_agents_prompt_' . $this->aiAgent->id(), ]; if ($this->runnerId) { $tags[] = 'ai_agents_runner_' . $this->runnerId; } ``` There is no setter, constructor argument, or event th… ### [Research Scratchboards](https://git.drupalcode.org/project/ai_agents/-/work_items/3576571) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: Ahmad Khader (Ahmad-Khader) | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !247 >>> Problem/Motivation One big problem we have right now is to move context between agents. We have Artifact Storage that is a way of forwaring tool output into another tools input as an variable. We also have the possibility to Return Directly with a tool being called. However for multi agent setups, we have the issue that a child agent might need to write out summarized tokens to pass onto another agent, or the return directly from the tool is just too much context for what is … ### [Use streamed chat for agents](https://git.drupalcode.org/project/ai_agents/-/work_items/3538174) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: Sergiu Nagailic (Nikro) | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !165 >>> Problem/Motivation We are making streamed chat possible in #3528549: Allow tool calling in streamed chat. This should make it possible to use it with agents. Steps to reproduce Proposed resolution Implement a solution based on #3528549: Allow tool calling in streamed chat Remaining tasks User interface changes API changes Data model changes ### [Give a parent agent possibility to forward request as is](https://git.drupalcode.org/project/ai_agents/-/work_items/3550098) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) >>> Problem/Motivation Many time a user is actually asking an orchestration agent just one instruction for one specific agent. Depending on how well the prompt is, there might be loss of information when this is forwarded to the subagent. If the parent knows that it should just forward the request as is, then it should be able to give this as a token instead. This helps both with consistency, but also costs and speed, since it will just output one token. Proposed resolution Create a token that th… ### [Create implementation of ShortTermMemory](https://git.drupalcode.org/project/ai_agents/-/work_items/3546411) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !183 >>> Problem/Motivation Short term memory is now available here: #3528730: Create ShortTermMemoryPlugin We should add an integration with it. Proposed resolution Add a parameter to the agent config to save the short term memory config. Add a subform integration for saving the configuration, while editing the AI Agent. Assume no ShortTermMemory by default. Trigger ShortTermMemory after the request event. --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/ai_agents/-/merge_requests/282) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 1497 diff lines Description: Relates to #3586038. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-916232. --- COMMITS (24h) --- (none) ======================================================================== ## [9] stripNameAttribution:ai_agents ======================================================================== You are correcting a project digest section. The prose wrongly attributes work to specific people. Rewrite only the sentences that name any of these people so they describe the work in the passive voice without naming anyone: project update bot Rules: - Do not name any of those people anywhere except a trailing "Contributors:" line. - Keep the trailing "Contributors: project update bot (Project-Update-Bot)" line exactly as-is (add it if missing). - Leave every other sentence, HTML tag, link, and citation exactly as-is. - Output the full corrected fragment and nothing else. --- SECTION ---

                AI Agents

                The project saw extensive planning and issue refinement during the reporting period, though no merge requests were landed. The Automated Project Update Bot fixes merge request was opened to address Automated Drupal 12 compatibility fixes for ai_agents 1.4.x-dev, containing automated compatibility updates for Drupal 12.

                Several new issues were filed focusing on agent configuration and control. AI Agent entity form should reject machine names that collide with existing code-plugin IDs identifies a namespace collision bug in AiAgentManager::findDefinitions() where config entities can silently override code-defined plugins. feat: Per-tool approval mode (pre-approved / approve-once / always) with loop pause-resume proposes approval gates for sensitive tool execution. Allow callers to supply additional tags for the chat calls made by AiAgentEntityWrapper addresses ai_logging correlation gaps. Use the ai_json_schema editor for the AI Agent structured-output schema field suggests replacing the plain textarea with the ai_json_schema element for better validation and editing.

                How can I help on this project?

                Review the open Automated Project Update Bot fixes merge request for Drupal 12 compatibility. Pick up AI Agent entity form should reject machine names that collide with existing code-plugin IDs to add validation in the entity form. Work on Use the ai_json_schema editor for the AI Agent structured-output schema field to improve the schema editing UX.

                Contributors: project update bot (Project-Update-Bot) ======================================================================== ## [10] summariseModule:tool:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Tool API (machine name: tool) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a technical developer audience. Focus on: what was merged or shipped, specific bugs fixed, APIs changed, and what is blocking progress. Be specific — mention function names, module names, and MR references where relevant. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: Alex Urevick-Ackelsberg (alexua), Marcus Johansson (Marcus_Johansson)". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

                Tool API

                then use

                ,

                ,

                  /
                • , and as needed. Output only the HTML fragment with no surrounding , , or
                  tags. After the project summary prose, add a single subsection titled "

                  How can I help on this project?

                  " aimed at a developer. Suggest 2-3 concrete technical actions a contributor could take right now. Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, check the data for each issue: - If an issue shows a Related MR with state 'opened', do NOT suggest creating a patch or MR — one already exists. Suggest reviewing it instead. - If all Related MRs for an issue are merged, do NOT suggest reviewing them — they are already done. - If an issue is unassigned with no Related MRs, it is a good candidate to pick up. - Only suggest actions that are genuinely still needed given the current state in the data above. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). (none) --- MERGE REQUESTS (24h) --- ### [fix: #3582961 fail closed when tool input is invalid or missing](https://git.drupalcode.org/project/tool/-/merge_requests/113) State: opened | Author: Alex Urevick-Ackelsberg (alexua) | Branch: 3582961-access-invalid-input | 127 diff lines Description: Closes #3582961 ## Summary - catch `InvalidArgumentException` while `ToolBase::access()` obtains executable input values; - return `FALSE` for the boolean form and a generic forbidden result for the object form; - make the input-dependent denial uncacheable and avoid exposing raw validation details; - align the implementation's `$return_as_object` type with `ToolInterface`; - align the AI connector's missing-input regression test with the new access-denied path while retaining its repair-oriented input schema. ## Verification - `php -l src/Tool/ToolBase.php` - `php -l tests/src/Kernel/Tool… ### [Resolve "Create a skill for generating Tool plugins (best practices, how-to, placement)"](https://git.drupalcode.org/project/tool/-/merge_requests/93) State: opened | Author: Marcus Johansson (Marcus_Johansson) | Branch: 3582945-create-a-skill-for-generating-tool-plugins-best-practices-how-to-placement | 1548 diff lines Description: Closes #3582945 ### [fix: #3582960 validate every multiple input item](https://git.drupalcode.org/project/tool/-/merge_requests/112) State: opened | Author: Alex Urevick-Ackelsberg (alexua) | Branch: 3582960-validate-all-multiple-inputs | 137 diff lines Description: Closes #3582960 ## Summary - validate every item in a multiple input instead of returning after the first item; - preserve the emitted violations so multiple invalid values are all reported; - pin the existing empty-array contract: `required` means the input is present, while minimum cardinality requires an explicit `Count` constraint. ## Verification - `php -l src/TypedInputsTrait.php` - `php -l tests/src/Kernel/Tool/TypedInputsValidationTest.php` - `composer validate --no-check-publish` - `git diff --check` The focused Kernel test is included but was not executed locally because this is… --- COMMITS (24h) --- (none) ======================================================================== ## [11] summariseModule:canvas:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Drupal Canvas (machine name: canvas) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a technical developer audience. Focus on: what was merged or shipped, specific bugs fixed, APIs changed, and what is blocking progress. Be specific — mention function names, module names, and MR references where relevant. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Fons Vandamme (f0ns), Rajab Natshah (RajabNatshah), Tim Plunkett (tim.plunkett)". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

                  Drupal Canvas

                  then use

                  ,

                  ,

                    /
                  • , and as needed. Output only the HTML fragment with no surrounding , , or
                    tags. After the project summary prose, add a single subsection titled "

                    How can I help on this project?

                    " aimed at a developer. Suggest 2-3 concrete technical actions a contributor could take right now. Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, check the data for each issue: - If an issue shows a Related MR with state 'opened', do NOT suggest creating a patch or MR — one already exists. Suggest reviewing it instead. - If all Related MRs for an issue are merged, do NOT suggest reviewing them — they are already done. - If an issue is unassigned with no Related MRs, it is a good candidate to pick up. - Only suggest actions that are genuinely still needed given the current state in the data above. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Dependency Dashboard](https://git.drupalcode.org/project/canvas/-/work_items/3591657) State: opened | Updated: 2026-08-10 | Author: **** (project_19391_bot_cb443e60680723bba08a5351bf595251) | Assigned: unassigned | Labels: projectManagement Description: This issue lists Renovate updates and detected dependencies. Read the [Dependency Dashboard](https://docs.renovatebot.com/key-concepts/dashboard/) docs to learn more. ## Repository Problems Renovate tried to run on this repository, but found these problems. - ⚠️ WARN: Failed to set branch status - ⚠️ WARN: No github.com token has been configured. Skipping release notes retrieval - ⚠️ WARN: Rate limit exceeded for api.github.com, as no hostRules set for this host. Please set a GITHUB_COM_TOKEN - ⚠️ WARN: No tool releases found. ## Deprecations / Replacements > ⚠️ **Warning** > The foll… ### [PHPStan failing on global $argv usage](https://git.drupalcode.org/project/canvas/-/work_items/3591931) State: opened | Updated: 2026-08-09 | Author: Tim Plunkett (tim.plunkett) | Assigned: unassigned | Labels: Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1485 [fix: #3591931 Do not rely on $argv being a global](https://git.drupalcode.org/project/canvas/-/merge_requests/1485) | State: opened | Author: Tim Plunkett (tim.plunkett), 16 diff lines Description: A few recent pipelines are failing with ``` ------ ----------------------------------------------------------------- Line tests/src/Playwright/scripts/exclude-config-schema-checking.php ------ ----------------------------------------------------------------- 43 Variable $argv might not be defined. 🪪 variable.undefined ------ ----------------------------------------------------------------- ``` But it's only failing sometimes, and I can't find out why. Google says that $argv can't be trusted o… ### [Allow per-node override of Content Template via checkbox in node selector](https://git.drupalcode.org/project/canvas/-/work_items/3567225) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: Lauri Timmanee (lauriii) | Labels: Needs product manager review, category::feature, priority::normal, state::needsWork Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !948 [task: #3567225 Make the component tree loader extensible](https://git.drupalcode.org/project/canvas/-/merge_requests/948) | State: opened | Author: Rajab Natshah (RajabNatshah), 29 diff lines Description: >>> [!note] Migrated issue Reported by: [belkin13](https://www.drupal.org/user/2369688) Related to !948 >>> Overview Content Templates in Drupal Canvas are currently applied at the content type + view mode level. This is great for consistent designs across similar content, but editors often need to create highly custom, one-off pages (e.g. special landing pages, unique "About" or promo pages) that belong to an existing content type like "Page" or "Landing page", without affecting every other node of that type. Right now, achieving this requires workarounds: Creating a dedicated content t… ### [Canvas AI: Cover the error path that clears stored agent state](https://git.drupalcode.org/project/canvas/-/work_items/3591927) State: opened | Updated: 2026-08-09 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai, ai::inside Description: ## Summary When an agent run throws, the dev controller deletes the stored agent state for that turn and returns an error response. Nothing asserts either half. Part of https://git.drupalcode.org/project/canvas/-/work_items/3591777. ## What the test should validate - The stored agent state for the turn is deleted. - The response reports failure and does not ask for another hop. ## Current behavior `CanvasDevAiBuilder::render()` wraps `determineSolvability()` in a try/catch. The catch deletes the stored agent state for the turn and returns `status: false` with `should_continue: false`. No … ### [Canvas AI: Add Playwright coverage for the component agent hop loop](https://git.drupalcode.org/project/canvas/-/work_items/3591926) State: opened | Updated: 2026-08-09 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai, ai::inside Description: ## Summary The dev chat runs a turn as several requests — the agent pauses after each tool decision and the browser re-POSTs until `should_continue` is false. Nothing covers that loop in a browser. Part of https://git.drupalcode.org/project/canvas/-/work_items/3591777. ## What the test should validate - The user's message is rendered in the chat UI. - The progress message is rendered. - The progress loader appears while the turn is running. - The turn keeps hopping until a response reports `should_continue: false`, and stops there. - The final message returned by the controller is rendered … ### [Canvas AI: Add a Drupal Canvas Agent that answers general questions](https://git.drupalcode.org/project/canvas/-/work_items/3591924) State: opened | Updated: 2026-08-09 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai, ai::inside Description: ## Summary Add an `ai_agent` config entity to `canvas_dev_ai`, labelled **Drupal Canvas Agent**, that answers general questions about Canvas from its system prompt and uses no tools. It is the main agent of the dev chat. Part of https://git.drupalcode.org/project/canvas/-/work_items/3591777. ## Why Every agent in the dev chat performs work. A user who asks what Canvas can do, or which Tool to pick, has nothing to talk to — the turn goes to whichever working agent is configured. This agent is the chat's entry point; Tools are what the user switches to for a task. ## Proposed Create the age… ### [Canvas AI: Research how a user can cancel a running chat turn](https://git.drupalcode.org/project/canvas/-/work_items/3591923) State: opened | Updated: 2026-08-09 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai, ai::inside Description: ## Summary Research issue — no implementation. A user cannot cancel a running turn in the dev chat, and the approach is not obvious because deep-chat offers no stop control on the request path the wizard uses. Decide the route here; implementation lands in a follow-up. Part of https://git.drupalcode.org/project/canvas/-/work_items/3591777. ## Current behavior - **deep-chat renders no stop control on our path.** `changeToStopIcon()` is wired as `streamHandlers.onOpen`, and only deep-chat's `stream()` path invokes `streamHandlers`. `AiWizardDev.tsx` passes no `stream` prop, so the submit butt… ### [Canvas AI: Add end-to-end kernel coverage for the dev page builder agent](https://git.drupalcode.org/project/canvas/-/work_items/3591922) State: opened | Updated: 2026-08-09 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai, ai::inside Description: ## Summary Follow-up to https://git.drupalcode.org/project/canvas/-/work_items/3591921. Cover `canvas_dev_ai_page_builder_agent` turns driven through the dev AI controller, the way `CanvasComponentAgentEndToEndTest` covers the component agent. Part of https://git.drupalcode.org/project/canvas/-/work_items/3591777. ## Current behavior 3591921 lands the agent with a single two-hop placement turn as its acceptance proof. Nothing covers a multi-row build, an edit turn, or a page-value write. ## Proposed Add `CanvasDevPageBuilderAgentEndToEndTest` beside `modules/canvas_ai/tests/src/Kernel/Age… ### [Canvas AI: Add a dev page builder agent and wire the placement tools](https://git.drupalcode.org/project/canvas/-/work_items/3591921) State: opened | Updated: 2026-08-09 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai, ai::inside Description: ## Summary Add an `ai_agent` config entity to `canvas_dev_ai` that builds a page by placing one component row per hop, and wire the four placement tools that currently ship inert. Part of https://git.drupalcode.org/project/canvas/-/work_items/3591777. ## Current behavior `canvas_dev_ai` runs one agent per chat turn as a client-side hop loop, and only `canvas_component_agent` is wired to it — so the dev flow can build JS code components but cannot build a page. `canvas_ai:place_components`, `canvas_ai:edit_components`, `canvas_ai:set_page_value` and `canvas_ai:get_component_details` are all … ### [Canvas AI: Add a catalog-only parameter to the get_component_context tool](https://git.drupalcode.org/project/canvas/-/work_items/3591920) State: opened | Updated: 2026-08-09 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai, ai::inside Description: ## Summary `canvas_ai:get_component_context` always returns every component with all its props and slots. Add a parameter that returns only the id, name and description, reusing the helper method that already produces it. Part of https://git.drupalcode.org/project/canvas/-/work_items/3591777. ## Current behavior `GetComponentContext::execute()` returns `CanvasAiPageBuilderHelper::getComponentContextForAi()`, and the tool declares no context definitions. `CanvasAiComponentContextHelper::getComponentCatalog()` already returns the lean listing — `name` and `description` keyed by component id —… ### [Canvas AI: Run the agent selected in configuration instead of a hardcoded one](https://git.drupalcode.org/project/canvas/-/work_items/3591919) State: opened | Updated: 2026-08-09 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai, ai::inside Description: ## Summary `canvas_dev_ai` stores `main_agent` and `tools` in `canvas_dev_ai.settings`, set at `/admin/config/ai/canvas-ai-agent-selection`. Nothing reads them. Make the controller run the configured agent. Part of https://git.drupalcode.org/project/canvas/-/work_items/3591777. ## Current behavior `CanvasDevAiBuilder.php:111` instantiates `canvas_component_agent` as a literal, so the form has no effect. ## Proposed - Every hop sends the target agent ID. Validate it against `main_agent` and `tools`; anything else is an error response. - When no target agent is sent, run `main_agent`. - Shi… ### [Canvas AI: Expose Props of Blocks to the Agent](https://git.drupalcode.org/project/canvas/-/work_items/3569120) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint16, AI Initiative, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [akhil babu](https://www.drupal.org/user/3632866) Related to !498 >>> Overview Currently CanvasAiPageBuilderHelper::getAllComponentsKeyedBySource() does this <?php      if ($source === SingleDirectoryComponent::SOURCE_PLUGIN_ID) {        $this->processSdc($component, $sdc_definitions, $output);      }      elseif ($source === JsComponent::SOURCE_PLUGIN_ID) {        $this->processCodeComponents($co… ### [Canvas AI: Client-side orchestration loop for Canvas AI(POC)](https://git.drupalcode.org/project/canvas/-/work_items/3591615) State: opened | Updated: 2026-08-09 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint16, AI Initiative Sprint, ai Description: ## Problem Every Canvas AI request is a single synchronous PHP call. The full chain — orchestrator → sub-agent → tool calls → validation — must complete before the server responds. This causes two concrete failures: - **Timeouts on hosted platforms (e.g. DrupalForge).** A full page build exceeds the request time limit. The user gets nothing. - **Full regeneration on any error.** If one component in a large response fails validation, the entire response is regenerated — wasting time and tokens. There is no streaming and no partial feedback. ## How `ai_chatbot` already solves this The `ai_c… ### [Canvas AI: Add Tools dropdown to chat UI](https://git.drupalcode.org/project/canvas/-/work_items/3591856) State: opened | Updated: 2026-08-09 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 1.x-dev, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: ## Background — how Canvas AI works today The Canvas AI chat is an **orchestrator system**. Every message goes first to a single orchestrator agent. The orchestrator reads the message, infers the intent, and launches the matching sub-agent: - "Build me a landing page" → orchestrator → page-builder sub-agent - "Create a React component" → orchestrator → component sub-agent - "Write a title / meta description" → orchestrator → the relevant sub-agent The routing is implicit — the user never chooses which sub-agent runs; the orchestrator decides on every turn. Roadmap: https://git.drupalcode.o… ### [Canvas AI: page builder discards the whole build when the LLM names a region that does not exist](https://git.drupalcode.org/project/canvas/-/work_items/3591876) State: opened | Updated: 2026-08-09 | Author: Rajab Natshah (RajabNatshah) | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai Description: ## Problem/Motivation `CanvasAiPageBuilderHelper` throws when the AI names a target region that is not present in the current layout: ``` Region "%s" not found in layout ``` The LLM commonly guesses a generic region name that does not exist on the entity's actual layout (for example `content` capitalized, `0`, or `header` on a single-region layout). The exception aborts the entire page-build operation, so the whole AI response is discarded instead of degrading gracefully into a usable page. ## Steps to reproduce 1. Use the Canvas AI page builder to add components on a page whose layout do… --- MERGE REQUESTS (24h) --- ### [fix(deps): update npm minor and patch](https://git.drupalcode.org/project/canvas/-/merge_requests/1238) State: opened | Author: **** (project_19391_bot_cb443e60680723bba08a5351bf595251) | Branch: renovate/npm-minor-and-patch | 55 diff lines Description: This MR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@axe-core/playwright](https://github.com/dequelabs/axe-core-npm) | [`4.11.1` → `4.12.1`](https://renovatebot.com/diffs/npm/@axe-core%2fplaywright/4.11.1/4.12.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@axe-core%2fplaywright/4.12.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@axe-core%2fplaywright/4.11.1/4.12.1?slim=true) | | [@babel/parser](… ### [bug: #3591839 Preserve the query string when stripping the language prefix; a...](https://git.drupalcode.org/project/canvas/-/merge_requests/1387) State: opened | Author: Fons Vandamme (f0ns) | Branch: 3591839-prefix-strip-redirect-misses-default-language-prefixes-and-is-overridden-by-destination | 193 diff lines Description: Fixes two gaps in the language-prefix redirect from #3591585 (`CanvasRouteOptionsEventSubscriber::redirectCanvasToDefaultLanguage()`): 1. A prefix configured for the default language was never stripped, because the redirect only ran when the current language differed from the default. The editor then received a prefixed path and rendered a gray screen. 2. The redirect dropped the query string, and a `destination` parameter (present on `/admin/content/pages` Edit links) made `RedirectResponseSubscriber` override the redirect target, returning the user to the overview. The redirect now strips … --- COMMITS (24h) --- (none) ======================================================================== ## [12] summariseModule:ai_context:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Context Control Center (CCC) (machine name: ai_context) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a technical developer audience. Focus on: what was merged or shipped, specific bugs fixed, APIs changed, and what is blocking progress. Be specific — mention function names, module names, and MR references where relevant. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: Juan Correa (jucs7), Kristen Pol (kepol) [2], Tamas Balog (tbalog) [1]". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

                    Context Control Center (CCC)

                    then use

                    ,

                    ,

                      /
                    • , and as needed. Output only the HTML fragment with no surrounding , , or
                      tags. After the project summary prose, add a single subsection titled "

                      How can I help on this project?

                      " aimed at a developer. Suggest 2-3 concrete technical actions a contributor could take right now. Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, check the data for each issue: - If an issue shows a Related MR with state 'opened', do NOT suggest creating a patch or MR — one already exists. Suggest reviewing it instead. - If all Related MRs for an issue are merged, do NOT suggest reviewing them — they are already done. - If an issue is unassigned with no Related MRs, it is a good candidate to pick up. - Only suggest actions that are genuinely still needed given the current state in the data above. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Pre-1.0 documentation, trust, and compatibility follow-up to issue 3586363](https://git.drupalcode.org/project/ai_context/-/work_items/3586382) State: closed | Updated: 2026-08-10 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, category::task Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !253 [Issue #3586382: Pre-1.0 documentation, trust, and compatibility follow-up.](https://git.drupalcode.org/project/ai_context/-/merge_requests/253) | State: merged 2026-08-10 | Author: Kristen Pol (kepol), 721 diff lines Description: ## Follow-up to: #3586363+s Follow-up to "Before 1.0" triage in #3586363. Combines documentation, API annotation, security guidance, and release-policy work that should land before 1.0 without adding new functionality. **Scope:** #1, #2, #5, #6, #8 from the Before 1.0 list in #3586363+s. **Non-goals:** selector/diagnostics work (#3, #4, #9 — separate issue), performance benchmarks (#7 — 1.1), usage vs observability decision (#10 — #3567803 / #3586213). ## Problem / motivation _**Note that the following needs to be rechecked before working on this issue as some things may have been fixed.… ### [Remove max_items context limit and rely on the token budget](https://git.drupalcode.org/project/ai_context/-/work_items/3586378) State: opened | Updated: 2026-08-10 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: 2026Sprint16, category::task, priority::major, sprint candidate Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !244 [Issue #3586378: Remove max_items context limit and rely on token budget.](https://git.drupalcode.org/project/ai_context/-/merge_requests/244) | State: opened | Author: Kristen Pol (kepol), 2982 diff lines Description: ## Summary Follow-up to: - #3586337+s The **Max context items to inject** setting (`max_items`) adds UX and DX complexity without providing a meaningful limit on its own. Context items vary widely in size, so a token budget is the more accurate control for how much context can reach an agent prompt. Remove `max_items` from configuration, forms, validation, selection logic, documentation, and tests. After this change, the token budget (`max_tokens`) is the primary module-wide limit on injected context. ## Problem Site builders currently configure two overlapping limits: - **Max context i… ### [Document Purpose field guidance for conditional subcontext selection](https://git.drupalcode.org/project/ai_context/-/work_items/3586390) State: closed | Updated: 2026-08-10 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai::internal, category::task Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !246 [Issue #3586390: Document purpose guidance for conditional subcontext.](https://git.drupalcode.org/project/ai_context/-/merge_requests/246) | State: merged 2026-08-09 | Author: Kristen Pol (kepol), 206 diff lines Description: ## Problem/motivation Follow-up to: - #3586351+s - #3586199+s Real-provider testing showed the current conditional subcontext prompt (parent Content + task + each child’s **ID and Purpose**) is sufficient for most well-authored configurations. Failures were more often caused by weak or overlapping Purpose text than by missing child labels or descriptions. Authors may not realize that **Purpose is the primary signal** the model uses to decide whether a conditional child applies. The field is required, but there is little guidance on writing effective inclusion criteria or avoiding overlap b… ### [[Meta] Prepare CCC for Inside AI Rotterdam demo](https://git.drupalcode.org/project/ai_context/-/work_items/3586386) State: opened | Updated: 2026-08-10 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: 2026Sprint16, AI Initiative Sprint, Rotterdam2026, ai::internal Description: ## Scope Area meta issue for **AI Context**, area 6 of ai_initiative#3586657+. **Lead:** Kristen Pol The Context Control Center (CCC) installs with sensible defaults and holds real site information for the Inside AI university demo, including brand guidance and university writing guidelines used by AI Content Review. Every AI feature on the demo site draws its site context from CCC rather than from feature-specific configuration. ## Demo scenario A visitor to the Demo section is shown where the brand and writing guidelines live, changes one guideline, runs a content review against the sam… ### [Create CCC recipe for Inside Rotterdam demo](https://git.drupalcode.org/project/ai_context/-/work_items/3586385) State: opened | Updated: 2026-08-10 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, Rotterdam2026, ai::inside Description: ## Problem Parent: #3586386+ Primary deliverable for the **AI Context** area of the Inside AI Rotterdam demo ai_initiative#3586657+. The Rotterdam demo needs a CCC recipe that installs with the Drupal AI starter template, ships university-specific context (especially writing guidelines for content review), and wires consumer subscriptions so every AI feature on the site uses CCC instead of its own context configuration. ## Proposed resolution Create a CCC recipe that: 1. Installs `ai_context` with Rotterdam demo defaults. **(TBD, what those are)** 2. Ships university brand and editorial/… ### [Add context item Priority field and use it for selection ordering](https://git.drupalcode.org/project/ai_context/-/work_items/3586376) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, category::feature Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !245 [Issue #3586376: Add context item priority field and selection tie-breakers.](https://git.drupalcode.org/project/ai_context/-/merge_requests/245) | State: opened | Author: Kristen Pol (kepol), 1323 diff lines Description: ## Summary Follow-up to: #3586364+s Context selection currently breaks ties between equally weighted candidates using the item `changed` timestamp. That is opaque to editors and does not reflect editorial intent when multiple items compete for the same slots. Add a **Priority** field on context items and use it consistently when the selector chooses and orders candidates within each selection group. ## Problem When more context items qualify than fit under `max_items` (or `max_global_items`), the selector must decide which items to keep and in what order. Today: - Global, scored, and ma… ### [Rename entity bundle and target entity scope plugins for better DX](https://git.drupalcode.org/project/ai_context/-/work_items/3586276) State: closed | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint12, 2026Sprint13, 2026Sprint14, 2026Sprint15 Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !195 [Issue #3586276: Rename entity bundle and target entity scope plugins for better DX](https://git.drupalcode.org/project/ai_context/-/merge_requests/195) | State: merged 2026-08-09 | Author: Tamas Balog (tbalog), 7456 diff lines Description: ## Problem/solution Follow up to: #3586148+s The naming of the entity bundle and target entity scope plugins is confusing. ## Solution **AiContextScopeEntityBundle** Rename Entity Bundle => Entity Type at a code-level because there are bundleless content entities. Label: Entity Types Description: Apply this context to every entity of a chosen type, for example all Article nodes, every Document media item, or every Canvas page. Choose this when the context is true for the whole type, not a single item. **AiContextScopeTargetEntity** Rename Target Entity => Entity Item because target… ### [Clarify and stabilize the scope plugin extension boundary for 1.0](https://git.drupalcode.org/project/ai_context/-/work_items/3586392) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, category::task Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !249 [Issue #3586392: Clarify and stabilize scope plugin extension boundary for 1.0.](https://git.drupalcode.org/project/ai_context/-/merge_requests/249) | State: opened | Author: Kristen Pol (kepol), 1007 diff lines Description: ## Summary Follow-up to: #3586243+s Before 1.0, lock down what custom scope authors and contrib can safely depend on, without landing the full persistence/orchestration refactor from #3586243+. This issue is documentation and internal seam-setting only: no new public interface methods and no user-visible behavior changes. The current scope plugin API is already broad enough for map-backed custom scopes, but docs and code send mixed signals. The scope manager is marked `@internal` while developer docs show injection patterns; the resolver interface docblock calls itself public while `api-st… ### [Introduce more granular permissions to CCC](https://git.drupalcode.org/project/ai_context/-/work_items/3563036) State: closed | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: category::task, mvp, priority::normal, state::fixed Description: >>> [!note] Migrated issue Reported by: [kristen pol](https://www.drupal.org/user/8389) Related to !15 >>> [Tracker] Update Summary: Introduce more granular permissions to CCC Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Right now, any editor with "administer ai context" can use all of the context features. We want less technical users to be able to use some of the system, while technical users can focus on more complex things. Proposed resolution Add more granular permissions. For now, these are: administer ai context - keep this and … ### [Create graphic to explain how context scope works](https://git.drupalcode.org/project/ai_context/-/work_items/3571104) State: closed | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint15, AI Initiative Sprint, ai::internal, category::task Description: >>> [!note] Migrated issue Reported by: [kristen pol](https://www.drupal.org/user/8389) >>> [Tracker] Update Summary: [One-line status update for stakeholders] Check-in Date: MM/DD/YYYY Blocked by: [#XXXXXX] (New issues on new lines) Additional Collaborators: @username1, @username2 Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Christoph suggested creating a create graphic to explain how context scope works Proposed resolution Create something that's easy to understand for users Target date or deadline TBD Remaining tasks Create i… ### [Assess possible 1.0 and 1.1 features and UX/DX improvements following TDT questions](https://git.drupalcode.org/project/ai_context/-/work_items/3586363) State: closed | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint15, AI Initiative Sprint, ai::internal, category::plan Description: ## Problem **_Note that we should minimize the changes for 1.0 at this point so identify the most important items, if any, from the "Before 1.0" list. Also, it would be best if they were in 1 or 2 issues rather than a bunch of new issues._** Follow-up to: #3586362+s When answering questions for a TDT post, it presented possible follow-up features and UX/DX improvements. Note that some of these may already have issues. ## Solution Vet the following for possible action and create follow-up and child issues as needed. Note that some of these may already have issues, so check first before cr… ### [Align scope scoring, language service, and contextual selection behavior](https://git.drupalcode.org/project/ai_context/-/work_items/3586388) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, blocker::stable, category::task, priority::major Description: ## Summary **IMPORTANT: If #3586365+s is merged first, this issue's MR needs fixing based on that (and vice versa).** Follow-up to: #3586365 Before 1.0, align scope weight, subscription scoring, UI ordering, language handling, hard contextual filtering, and function-call listing so selection behavior is predictable, consistently documented, and safe for agent use. ### 1. Align scope display order with scoring weight Use the existing plugin weight for both subscription scoring and UI display order. A higher weight means: - Greater influence during subscription scoring - Earlier placemen… ### [Sprint 16 CCC roadmap updates, sprint planning, and issue triage](https://git.drupalcode.org/project/ai_context/-/work_items/3586368) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: 2026Sprint16, AI Initiative Sprint, ai::internal, category::plan Description: ## Problem/Motivation Prioritize backlog items for the sprint to align with roadmap, releases, and project needs. --- ## Proposed resolution Groom sprint issues https://git.drupalcode.org/project/ai_context/-/work_items/views/75 --- ## Target date or deadline 8 August to 21 August 2026 --- ## Remaining tasks - Go through backlog and prioritize - Create new issues as needed - Identify what goes into sprint - Tune mid-sprint as needed - Update roadmap meta as needed --- ## Related issues - [#3567798: [META] CCC MVP 1.0 roadmap](https://www.drupal.org/project/ai_context/issues/35677… ### [Recruit additional CCC beta testers](https://git.drupalcode.org/project/ai_context/-/work_items/3586235) State: closed | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: ai::internal, category::task, priority::major, state::closed Description: ## Problem/motivation Note that Mike Anello (ultimike) is beta testing, but we will try to recruit more after beta3 is created: #3586295+s We want more beta testers. This issue was created for this: #3586234+s ## Solution Promote this in various channels: - ~~Slack~~ - ~~Status Videos~~ - ~~Beta blog posts~~ - LinkedIn - Planet Drupal? ## Tasks - ~~Create issue with resources~~ - ~~Post in the relevant Slack channels (ai, ai-contrib, ai-context, ai-partner-contributors)~~ - Create a dedicate blog post and/or LinkedIn post to promote ### [Update CCC maintainers in README.md](https://git.drupalcode.org/project/ai_context/-/work_items/3586366) State: closed | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint15, AI Initiative Sprint, ai::internal, category::task Description: ## Problem Maintainers list in readme is outdated. ## Solution Update it to reflect current maintainers ### [Drupal 10 does not invoke attribute-based theme and Scheduler hooks](https://git.drupalcode.org/project/ai_context/-/work_items/3586344) State: closed | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: blocker::beta, category::bug, priority::major, state::closed Description: ## Summary Drupal 10 does not discover the attribute-based hook implementations in `AiContextThemeHooks` and `SchedulerHooks`. Drupal 11 discovers methods marked with `#[Hook]` automatically. Drupal 10 requires traditional procedural hook implementations that delegate to explicitly registered services. This was identified while testing #3586338. ## Problems ### Missing theme hooks `AiContextThemeHooks::theme()` is marked with `#[Hook('theme')]`, but Drupal 10 does not invoke it. Consequently, the Drupal 10 theme registry does not contain AI Context theme hooks such as: - `ai_context_ov… ### [Add content type context scope for MVP](https://git.drupalcode.org/project/ai_context/-/work_items/3570934) State: closed | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: category::feature, priority::major, state::closed, version::v1.0.x-dev Description: >>> [!note] Migrated issue Reported by: [kristen pol](https://www.drupal.org/user/8389) >>> [Tracker] Update Summary: [One-line status update for stakeholders] Check-in Date: MM/DD/YYYY Blocked by: [#XXXXXX] (New issues on new lines) Additional Collaborators: @username1, @username2 Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Parent: #3564706: [META] Context Scope feature Follow-up to: #3568673: Add context scope base code and use case context scope plugin Add content type scope where the user can choose one or more content types to as… ### [[Spike] Complete scope plugin persistence API: manager orchestration, target entity encapsulation, and plugin-driven admin/selection](https://git.drupalcode.org/project/ai_context/-/work_items/3586243) State: closed | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint11, 2026Sprint16, AI Initiative Sprint, ai::internal Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !164 [Issue #3586243: Complete scope plugin API before RC1: persistence, form encapsulation, validation, capability flags, and documented interface sections.](https://git.drupalcode.org/project/ai_context/-/merge_requests/164) | State: closed | Author: Kristen Pol (kepol), 6981 diff lines Description: ## Description _**Note that this needs to be rethought to minimize the impact on 1.0 and figure out what can happen in 1.1 instead.**_ Blocked by: #3586295+s ### Summary The scope plugin API was asymmetric: read and match were abstracted, but write, clear, index, cleanup, form integration, and save-time validation leaked storage details into callers. `AiContextItemForm`, entity presave, `hook_entity_delete()`, and `AiContextScopeIndexService` contained special cases — especially the `target_entities` DER field — that would repeat for every new scope. This issue completes the scope plugin… ### [Review and update CCC permissions before rc1](https://git.drupalcode.org/project/ai_context/-/work_items/3586358) State: closed | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, blocker::stable Description: ## Problem/Motivation Replaces the outdated permissions review: #3574937+s That issue and MR !78 targeted an earlier beta and no longer match the current permission model or scope. Related work already in progress: #3586356+s Permissions still need a focused pass before full QA: #3573716+s Goals for this issue: - Confirm the current permission set is sufficient for 1.0 roles (author, editor, admin, and published-context consumers). - Add only permissions with a clear 1.0 use case. - Avoid a broad redesign or large new own-* permission set in 1.0. Earlier ideas from #3574937 (decide… ### [Document the AI Context role and permission matrix for 1.0](https://git.drupalcode.org/project/ai_context/-/work_items/3586395) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: 2026Sprint16, AI Initiative Sprint, ai::internal, category::task Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !254 [Issue #3586395: Document the AI Context role and permission matrix for 1.0.](https://git.drupalcode.org/project/ai_context/-/merge_requests/254) | State: opened | Author: Kristen Pol (kepol), 300 diff lines Description: ## Problem/Motivation Follow-up to: #3586358+s The current AI Context permission model is sufficient for the 1.0 role patterns, and #3586356+ completed the required access hardening. However, site builders do not yet have a documented role/permission matrix. In particular, the documentation should distinguish: - Published-context consumers using AI features - Context authors managing their own items - Editors managing context across authors - Administrators managing settings, agents, and usage The documentation must also cover editorial workflow transition permissions, which are generate… ### [Automated Drupal 12 compatibility fixes for ai_context 1.0.x-dev](https://git.drupalcode.org/project/ai_context/-/work_items/3586269) State: opened | Updated: 2026-08-09 | Author: project update bot (Project-Update-Bot) | Assigned: unassigned | Labels: category::feature, priority::normal, state::postponed, what::code Description: ## Problem/Motivation This is an automated issue to help make this module compatible with Drupal 12. Changes will periodically be added to this issue that remove deprecated API uses. The changes are posted by the [Project Update Bot](https://www.drupal.org/u/project-update-bot) official user account. This account will not receive any issue credit contributions. To stop the bot from posting further updates, post a comment containing `/ProjectUpdateBot:ignore` anywhere in its body. The bot will then leave this issue alone without it needing to be closed. ## Proposed resolution A merge reque… ### [Resolve `use_default` provider config for conditional subcontext selection](https://git.drupalcode.org/project/ai_context/-/work_items/3586391) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, category::bug Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !247 [Issue #3586391: Resolve use_default provider for conditional subcontext.](https://git.drupalcode.org/project/ai_context/-/merge_requests/247) | State: opened | Author: Kristen Pol (kepol), 787 diff lines Description: ## Problem / motivation Follow-up to: - #3586351+s - #3586207+s During real-provider conditional subcontext testing (#3586351+), conditional children were **silently excluded** even though: - **Enable conditional subcontext AI decisions** was on - Published conditional subcontext items existed - The site had a working chat default at **AI → Settings → Default providers** Root cause: `ai_context` stores settings in `ai_context.settings:provider_config`, but runtime code only reads **`provider`** and **`model`**. It ignores **`use_default`**. Install config ships with: ```yaml provider_co… ### [CCC QA scripts for 1.0 testing](https://git.drupalcode.org/project/ai_context/-/work_items/3586226) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, blocker::stable Description: ## Problem/motivation Need to make sure we're ready for the QA team to do pre-1.0 testing. ## Solution From Bruna Emerich (Zoocha): Documentation covering the functionality, along with a test script (such as the example in this ticket, where an .md file is included), is sufficient for us to carry out testing. If any questions come up, we’ll raise them directly in the channel and tag you. Regarding lead time, it depends on the size of the functionality, but generally one week’s notice is sufficient. If there’s a fixed release date, allowing around 14 days is preferable, as it gives enough … ### [Install `target_entities` field storage when Dynamic Entity Reference is enabled on existing sites](https://git.drupalcode.org/project/ai_context/-/work_items/3586375) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, category::bug Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !251 [Issue #3586375: Install target_entities storage when DER is enabled later.](https://git.drupalcode.org/project/ai_context/-/merge_requests/251) | State: opened | Author: Kristen Pol (kepol), 610 diff lines Description: ## Problem Sites that already have `ai_context` installed can fatal when `dynamic_entity_reference` is enabled (or was enabled without a matching schema update). The context item listing and other entity loads fail with: `Table 'db.ai_context_item__target_entities' doesn't exist` Example stack: `SqlContentEntityStorage->loadFromDedicatedTables()` while `AiContextItemListBuilder->load()` renders `/admin/config/ai/context/items`. ### Root cause `target_entities` is not defined in `AiContextItem::baseFieldDefinitions()`. It is added at runtime via `DynamicEntityReferenceHooks::entityBaseFiel… ### [Test current conditional subcontext selection before changing the prompt](https://git.drupalcode.org/project/ai_context/-/work_items/3586351) State: closed | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, blocker::stable Description: ## Summary _**Note: this is a tricky issue to test.**_ Follow-up to #3586194+. This issue should be completed before #3586199+. ## Problem/motivation #3586199+ proposes adding a richer subcontext index to improve conditional child selection. Since that issue was created, the current implementation has begun sending each candidate child’s ID and Purpose to the AI provider. It is not yet known whether the richer index is still needed. Existing automated tests verify selection mechanics with fixed responses but do not assess real-model relevance decisions. ## Solution The detailed assessme… ### [Review and document context selection ranking factors before 1.0](https://git.drupalcode.org/project/ai_context/-/work_items/3586365) State: closed | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: **Note that I switched this from a discussion issue to a documentation. Discussion has happened. Docs are in the MR.** **IMPORTANT: If #3586388+s is merged first, this issue's MR needs fixing based on that (and vice versa).** ## Summary Before we ship 1.0, we should confirm that the current rules for choosing which context items reach an AI feature are the right set — and whether anything important is missing. This issue is a **discussion**. The goal is shared understanding of what the module does today, in plain language, so product/UX and engineering can decide together whether to add ra… ### [Redesign selection modes as a nested Minimal / Relevant / Broad ladder and remove match_all](https://git.drupalcode.org/project/ai_context/-/work_items/3586394) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: 2026Sprint16, category::feature, priority::major, sprint candidate Description: ## Problem/motivation Follow-up to: #3586237+s Agent context selection is confusing today because the two selection modes encode mechanisms instead of user intent, and they are not supersets of each other: - **Minimal** (default) with **no subscriptions** injects almost nothing except Global, Always include, and **Target Entity** auto-matches. New agents silently get no situational context. - **Subscriptions** are required to inject Use Case, Context Tags, Taxonomy Terms, Entity Bundle, etc. — and an **empty scope on an item counts as a full subscription match**, so unscoped "gener… ### [Create multi-vocabulary taxonomy scope plugin](https://git.drupalcode.org/project/ai_context/-/work_items/3586237) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, category::feature, needs manual testing, priority::normal Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !250 [Issue #3586237: Add multi-vocabulary taxonomy scope plugin.](https://git.drupalcode.org/project/ai_context/-/merge_requests/250) | State: opened | Author: Kristen Pol (kepol), 1714 diff lines Description: ## Problem/motivation _**Note that this isn't a must have for 1.0 but a nice to have. Given that people think the current "tags" scope plugin previous the behavior this plugin would provide then it is really nice to have.**_ _**Note that weight = 20 should be used as follow-up to #3586388+s.**_ Follow up to: #3586198+s We do not have a scope plugin that allows associated context with the terms for content entities. Example: * Article **has terms**: foo, bar, hello * Blog post **has terms**: foo, whatever * One context item **has term**: foo * Another context item **has terms**: foo, bar… ### [[Meta] CCC MVP 1.0 roadmap](https://git.drupalcode.org/project/ai_context/-/work_items/3567798) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: Kristen Pol (kepol) | Labels: 2026Sprint10, 2026Sprint11, 2026Sprint12, 2026Sprint16 Description: >>> [!note] Migrated issue Reported by: [kristen pol](https://www.drupal.org/user/8389) >>> --- ## Problem/Motivation We need a stable release of CCC to support Drupal CMS that includes a lot of the ideas and features we've been discussing, including the 1-year plan capabilities. Note that the originally-planned 1.0 functionality expanded to include some features that were originally going to be in 1.1. --- ## Proposed resolution Update issue list and work through them Rough timing though beta4 isn't out yet --- ## Target dates - March 23rd: Beta1 release - March 23rd to 27th: … ### [Create CCC beta3 and beta4 and status update video](https://git.drupalcode.org/project/ai_context/-/work_items/3586333) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: 2026Sprint16, AI Initiative Sprint, ai::internal, category::task Description: Create a video on beta3 and beta4 and the current status of CCC and what's coming up. ### [Implement plugin-based generic context consumers and unified consumer configuration](https://git.drupalcode.org/project/ai_context/-/work_items/3586346) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::outside Description: ## Summary **Review the plan carefully before proceeding with implementation in case it needs adjustments.** Implement the architecture accepted in [#3586319](https://git.drupalcode.org/project/ai_context/-/work_items/3586319): AI Context will treat everything that receives context as a consumer, with agents becoming one consumer type. Consumer types will use Drupal attribute plugins, all configured consumers will use one configuration store, and agent and non-agent requests will share the same request-building and selection pipeline. This is a clean-slate beta change. Agent-specific factor… ### [[Meta] Prepare demo content and demo context items for the CCC to show how it works](https://git.drupalcode.org/project/ai_context/-/work_items/3586339) State: opened | Updated: 2026-08-09 | Author: Emma Horrell (emma-horrell) | Assigned: Emma Horrell (emma-horrell) | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, AI UX Description: ## Problem/motivation _**Note that if we at least get the code with one draft example merged in for beta4 that we can add the additional sample context in rc1 since it would be "documentation" in a sense.**_ Follow-up to: - #3586335 - #3586279 A new Context Control Center (CCC) installation is empty. People unfamiliar with CCC terminology and structure cannot easily see how source content, context items, scopes and consumer subscriptions work together. Provide realistic, optional demo data that lets people explore a complete CCC workflow before configuring it for their own organisation. … ### [Clarify scope eligibility, ranking, and limits in UI help and documentation](https://git.drupalcode.org/project/ai_context/-/work_items/3586348) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, blocker::stable Description: ## Summary _**Note that this could be implemented in rc1 because it's docs/help text and no functionality changes.**_ Follow-up to: - #3586281+s - #3586270+s - #3586335+s - #3586337+s Beta testing confirmed that the **subscription** model can remain for beta4, but the UI and documentation do not clearly explain how scope matching, eligibility, ranking, overrides, and limits work together. This issue improves inline help and user-facing documentation without changing scope behavior, configuration storage, selection logic, or subscription semantics. ## Problem The current Context scope de… ### [Pre-1.0 context selection reliability and diagnostics follow-up to issue 3586363](https://git.drupalcode.org/project/ai_context/-/work_items/3586383) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, category::task Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !252 [Issue #3586383: Pre-1.0 context selection reliability and diagnostics follow-up.](https://git.drupalcode.org/project/ai_context/-/merge_requests/252) | State: opened | Author: Kristen Pol (kepol), 1013 diff lines Description: **Blocker: Assess #3586348+s before proceeding on this issue.** ## Follow-up issue Follow-up to: #3586363 Child of the "Before 1.0" triage in #3586363+s. Improves selection transparency, conditional-subcontext failure visibility, and debug diagnostics before 1.0. **Scope:** #3, #4, #9 from the Before 1.0 list in #3586363. **Non-goals:** documentation/trust/compatibility work (#1, #2, #5, #6, #8 — separate issue), performance benchmarks (#7 — 1.1), usage vs observability (#10 — #3567803 / #3586213), rich selection diagnostics UI or persistence ([#3586242](https://git.drupalcode.org/projec… ### [Persist context-item token counts and show token-budget usage in CCC UI](https://git.drupalcode.org/project/ai_context/-/work_items/3586379) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, category::task Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !248 [Issue #3586379: Persist token counts and show budget usage in CCC UI.](https://git.drupalcode.org/project/ai_context/-/merge_requests/248) | State: opened | Author: Kristen Pol (kepol), 4635 diff lines Description: ## Summary Follow-up to: - #3586337+s - #3586348+s Implement the subscription-limit UX decisions from the Emma+Aidan review on #3586337. Persist each context item's estimated token count at save time, base token badges on percentage of the configured token budget, and add budget summary messaging on the agent subscription settings page. This issue implements the indicator behavior. It does not add new warning components beyond text, badges, and tooltips agreed in the design review. **Implementation:** [MR !248](https://git.drupalcode.org/project/ai_context/-/merge_requests/248) on branch … ### [QA team start testing CCC to get familiar with functionality and create QA plan](https://git.drupalcode.org/project/ai_context/-/work_items/3586342) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: Bruna Emerich (brunaemerich) | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: ## Problem CCC is huge and there's a lot to test. Beta3 was released last week and there were bugs: - #3586338+s - #3586341+s These most likely would have be caught by the QA team. I tested here with AI on Drupal CMS / Drupal 11: #3586296+s but neglected to test with Drupal 10. Not sure why the settings pages didn't get hit though. I tested manually with Canvas AI though it would be amazing if that could be automated somehow. ## Solution QA team plays around with CCC to understand the functionality and starts a draft QA plan. Here's the QA plan from AI: https://git.drupalcode.org/-/… ### ["Global context" checkbox description renders a literal
                      instead of a line break](https://git.drupalcode.org/project/ai_context/-/work_items/3586369) State: opened | Updated: 2026-08-09 | Author: Sohail Lajevardi (doxigo) | Assigned: Daniel Rodriguez (danrod) | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !240 [Issue #3586369: Global context checkbox description renders a literal
                      instead of a line break.](https://git.drupalcode.org/project/ai_context/-/merge_requests/240) | State: opened | Author: Juan Correa (jucs7), 136 diff lines Description: On the AI context item edit form, the description under the **Global context** checkbox displays the tag as text: > Always include this context for every agent.\Saving the form with this > enabled will clear previous scope settings. `AiContextScopeGlobal::getFormDescription()` exists specifically so this checkbox can carry a line break. Its own docblock says so: ```php /** * Gets the checkbox description for the context item form. * * Uses a line break that is not safe for settings pages escaped with * Html::escape(), so keep plain text in getDescription() instead. */ protected functio… --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- - [e3dd5d03](https://git.drupalcode.org/project/ai_context/-/commit/e3dd5d03b05229da227207746ddf04f51ed46460) Issue #3586382: Pre-1.0 documentation, trust, and compatibility follow-up. — Kristen Pol (2026-08-10T03:48:49.000+00:00) - [934d2ee9](https://git.drupalcode.org/project/ai_context/-/commit/934d2ee94751e7f61ebc26eed7711654b76c5af7) Issue #3586390: Document purpose guidance for conditional subcontext. — Kristen Pol (2026-08-09T22:17:07.000+00:00) - [9794f244](https://git.drupalcode.org/project/ai_context/-/commit/9794f24401a17de4cf5ace4cef69f48b372bab13) Issue #3586276: Rename entity bundle and target entity scope plugins for better DX — Tamas Balog (2026-08-09T19:02:48.000+00:00) ======================================================================== ## [13] summariseModule:ai_ckeditor:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI CKEditor (machine name: ai_ckeditor) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a technical developer audience. Focus on: what was merged or shipped, specific bugs fixed, APIs changed, and what is blocking progress. Be specific — mention function names, module names, and MR references where relevant. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: project update bot (Project-Update-Bot)". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

                      AI CKEditor

                      then use

                      ,

                      ,

                        /
                      • , and as needed. Output only the HTML fragment with no surrounding , , or
                        tags. After the project summary prose, add a single subsection titled "

                        How can I help on this project?

                        " aimed at a developer. Suggest 2-3 concrete technical actions a contributor could take right now. Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, check the data for each issue: - If an issue shows a Related MR with state 'opened', do NOT suggest creating a patch or MR — one already exists. Suggest reviewing it instead. - If all Related MRs for an issue are merged, do NOT suggest reviewing them — they are already done. - If an issue is unassigned with no Related MRs, it is a good candidate to pick up. - Only suggest actions that are genuinely still needed given the current state in the data above. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). (none) --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/ai_ckeditor/-/merge_requests/10) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 432 diff lines Description: Relates to #3615721. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-916232. --- COMMITS (24h) --- (none) ======================================================================== ## [14] stripNameAttribution:ai_ckeditor ======================================================================== You are correcting a project digest section. The prose wrongly attributes work to specific people. Rewrite only the sentences that name any of these people so they describe the work in the passive voice without naming anyone: project update bot Rules: - Do not name any of those people anywhere except a trailing "Contributors:" line. - Keep the trailing "Contributors: project update bot (Project-Update-Bot)" line exactly as-is (add it if missing). - Leave every other sentence, HTML tag, link, and citation exactly as-is. - Output the full corrected fragment and nothing else. --- SECTION ---

                        AI CKEditor

                        Activity over the past 24 hours was limited to automated maintenance. A merge request titled Automated Project Update Bot fixes was opened, containing changes from an automated project update run. The MR spans 432 lines of diff and remains in an opened state. No commits were pushed and no issues were updated during the reporting period.

                        How can I help on this project?

                        Review the Automated Project Update Bot fixes merge request to assess whether the automated changes are safe to merge. Check the project's issue queue for unassigned bugs or feature requests that need attention.

                        Contributors: project update bot (Project-Update-Bot)

                        ======================================================================== ## [15] summariseModule:ai_search:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI Search (machine name: ai_search) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a technical developer audience. Focus on: what was merged or shipped, specific bugs fixed, APIs changed, and what is blocking progress. Be specific — mention function names, module names, and MR references where relevant. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. Do not name any individual people in this section. No one was active enough this period to list. Format your response as an HTML fragment. Start with

                        AI Search

                        then use

                        ,

                        ,

                          /
                        • , and as needed. Output only the HTML fragment with no surrounding , , or
                          tags. After the project summary prose, add a single subsection titled "

                          How can I help on this project?

                          " aimed at a developer. Suggest 2-3 concrete technical actions a contributor could take right now. Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, check the data for each issue: - If an issue shows a Related MR with state 'opened', do NOT suggest creating a patch or MR — one already exists. Suggest reviewing it instead. - If all Related MRs for an issue are merged, do NOT suggest reviewing them — they are already done. - If an issue is unassigned with no Related MRs, it is a good candidate to pick up. - Only suggest actions that are genuinely still needed given the current state in the data above. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Progressive indexing can drop tail chunks](https://git.drupalcode.org/project/ai_search/-/work_items/3584032) State: opened | Updated: 2026-08-09 | Author: Sergiu Nagailic (Nikro) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: Problem/Motivation The progressive/Long Chunk strategy can mark an item complete before all of its chunks are embedded. computeItemChunks() counts chunks with a hard-coded gpt-3.5 tokenizer, while getEmbedding() uses the tokenizer configured on the Search API s> In one reproducible case, tracking counted 106 chunks while actual chunking produced 370. Search API stopped after its batch beginning at chunk 100, marked the item indexed, and ne> Steps to reproduce Configure the Long Chunk embedding strategy and a tokenizer other than GPT-3.5, such as XLM-RoBERTa (or any other tokenizer). … ### [Batch embeddings for improved indexing performance](https://git.drupalcode.org/project/ai_search/-/work_items/3584024) State: opened | Updated: 2026-08-09 | Author: Artem Dmitriiev (a.dmitriiev) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint16, AI Initiative Sprint, ai::inside Description: This is a placeholder for AI Core issue https://git.drupalcode.org/project/ai/-/work_items/3568648 . The development of ai_search submodule is deprecated, so this issue is for porting functionality from parent issue. ### [Preview reports first batch as total chunks](https://git.drupalcode.org/project/ai_search/-/work_items/3584033) State: opened | Updated: 2026-08-09 | Author: Sergiu Nagailic (Nikro) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint16, AI Initiative Sprint, ai::inside Description: Problem/Motivation The index fields Preview labels the number of embeddings returned by one call as Total chunks for this content. Progressive strategies return one slice of up to ten chunks, so long content is shown as having exactly ten chunks even when the full item contains many more. Steps to reproduce Configure a progressive chunk embedding strategy. Create an item that produces more than ten chunks. Open the AI Search index fields form and preview that item. The form reports ten total chunks and displays only the first slice. Proposed resolution Calculate the complete chu… ### [Clearing/resetting an index in 1x doesn't reset chunk-slicing progress so items silently re-index with zero embeddings](https://git.drupalcode.org/project/ai_search/-/work_items/3584035) State: opened | Updated: 2026-08-09 | Author: Abhisek Mazumdar (abhisekmazumdar) | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: ## Problem/Motivation The progressive chunk-slicing feature added in #3584014 tracks per-item embedding progress in `search_api_item.processed_chunks` / `total_chunks` (`SearchApiAiSearchBackend::indexItemsWithChunkSlicing()`), so large items can be embedded across multiple batch runs without a PHP timeout. On each run: ```php $offset = (int) ($progress[$item_id]['processed_chunks'] ?? 0); $embedding_strategy->setChunkOffset($offset); ... $client->indexItems($this->configuration, $index, [$item], $embedding_strategy); $new_processed = min($offset + static::MAX_CHUNKS_PER_BATCH, $total_chunks… ### [RagTool::execute() should expose structured per-result data and check entity access](https://git.drupalcode.org/project/ai_search/-/work_items/3584031) State: opened | Updated: 2026-08-09 | Author: Abhisek Mazumdar (abhisekmazumdar) | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: ## Problem/Motivation `RagTool::execute()` (`src/Plugin/AiFunctionCall/RagTool.php`) only ever hands the LLM a single flattened text string built from the search results. None of the per-result data survives the call: not which entity a chunk came from, not its score, not the raw chunk text. `getStructuredOutput()` returns `results` from `$this->results`, but `execute()` builds its output into a local `$end_results` array and never assigns anything to `$this->results`. It is always `[]`. This blocks consumers who want the *retrieved sources themselves*, not just the LLM's answer, from deleg… --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- (none) ======================================================================== ## [16] summariseModule:ai_translate:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI translate (machine name: ai_translate) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a technical developer audience. Focus on: what was merged or shipped, specific bugs fixed, APIs changed, and what is blocking progress. Be specific — mention function names, module names, and MR references where relevant. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. Do not name any individual people in this section. No one was active enough this period to list. Format your response as an HTML fragment. Start with

                          AI translate

                          then use

                          ,

                          ,

                            /
                          • , and as needed. Output only the HTML fragment with no surrounding , , or
                            tags. After the project summary prose, add a single subsection titled "

                            How can I help on this project?

                            " aimed at a developer. Suggest 2-3 concrete technical actions a contributor could take right now. Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, check the data for each issue: - If an issue shows a Related MR with state 'opened', do NOT suggest creating a patch or MR — one already exists. Suggest reviewing it instead. - If all Related MRs for an issue are merged, do NOT suggest reviewing them — they are already done. - If an issue is unassigned with no Related MRs, it is a good candidate to pick up. - Only suggest actions that are genuinely still needed given the current state in the data above. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Aggregate a node's translatable field-columns into a single chat request (opt-in batch translation)](https://git.drupalcode.org/project/ai_translate/-/work_items/3585527) State: opened | Updated: 2026-08-09 | Author: Tamas Balog (tbalog) | Assigned: Tamas Balog (tbalog) | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: --- ## Problem/Motivation `ai_translate` translates **one field-column per chat request**. `TextTranslator::translateContent()` is called once per column, and `ChatTranslationProvider::translateText()` rebuilds the full prompt (the configured translator prompt template + `setSystemPrompt('You are a helpful translator.')`) and calls `chat()` for each one. For a node with N translatable field-columns, that is N requests, each re-sending the **same** instruction block. For a typical 3-field node, roughly 1,000 of \~1,500 input tokens are the identical instructions sent three times. The redunda… ### [Refactor translation workflow to support Tool API and agent-driven translation](https://git.drupalcode.org/project/ai_translate/-/work_items/3585523) State: opened | Updated: 2026-08-09 | Author: Sven Decabooter (svendecabooter) | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: I am investigating whether I can have an AI Agent perform an entity translation, when a user requests this as part of an administrative AI agent interface. This would probably need some major refactoring of the module logic, since there are currently 2 endpoints: - UI batch translation - Drush command translation This would add a third one: Tool API translation So logic should be abstracted as much as possible where relevant, so all 3 entry points use the same code, rather than replicating it. I haven't investigated this further in detail, but already raising an issue here, in case someone … ### [InvalidArgumentException: Invalid translation language (und) when translating media entities](https://git.drupalcode.org/project/ai_translate/-/work_items/3585532) State: opened | Updated: 2026-08-09 | Author: szato (odi) | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, Quick Win Description: When using AI Translate to translate a media entity (e.g. media.image), the batch fails with: ``` InvalidArgumentException: Invalid translation language (und) specified. in Drupal\Core\Entity\ContentEntityBase->getTranslation() ``` **Steps to reproduce** - Enable AI Translate, configure an AI provider - Have a media type (e.g. image) with content translation enabled and field sync configured - Go to a media entity's translation overview, click "Translate using AI" for a non-existing language - Batch fails with the above exception **Proposed resolution** ``` --- a/src/Controller/AiTranslateC… ### [Feature: Translation result caching and cross-field deduplication](https://git.drupalcode.org/project/ai_translate/-/work_items/3585529) State: opened | Updated: 2026-08-09 | Author: Christoph Breidert (breidert) | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: ## Problem/Motivation `ai_translate` re-sends every field to the LLM on every translation run, with no memory of previous translations. This causes two avoidable costs: 1. **Re-translation of unchanged content.** On a re-translation run (fixing one typo, updating a single field), every unchanged field is sent to the LLM again, even though the output would be identical to the previous run. 2. **Repeated translation of identical strings.** Paragraph-heavy entities and Layout Builder pages often contain the same short string in multiple components (shared CTA labels, navigation titles, standard… --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- (none) ======================================================================== ## [17] summariseModule:flowdrop:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: FlowDrop (machine name: flowdrop) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a technical developer audience. Focus on: what was merged or shipped, specific bugs fixed, APIs changed, and what is blocking progress. Be specific — mention function names, module names, and MR references where relevant. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: Shibin Das [17]". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

                            FlowDrop

                            then use

                            ,

                            ,

                              /
                            • , and as needed. Output only the HTML fragment with no surrounding , , or
                              tags. After the project summary prose, add a single subsection titled "

                              How can I help on this project?

                              " aimed at a developer. Suggest 2-3 concrete technical actions a contributor could take right now. Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, check the data for each issue: - If an issue shows a Related MR with state 'opened', do NOT suggest creating a patch or MR — one already exists. Suggest reviewing it instead. - If all Related MRs for an issue are merged, do NOT suggest reviewing them — they are already done. - If an issue is unassigned with no Related MRs, it is a good candidate to pick up. - Only suggest actions that are genuinely still needed given the current state in the data above. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Add a requires_confirmation flag to flowdrop_node_type, wired to the existing interrupt/HITL engine](https://git.drupalcode.org/project/flowdrop/-/work_items/3592383) State: closed | Updated: 2026-08-09 | Author: Shibin Das (D34dMan) | Assigned: unassigned | Labels: Description: ## Summary Add an optional `requires_confirmation` flag to the `flowdrop_node_type` config entity. When set, the workflow engine pauses before that tool node fires and asks the operator to confirm — **reusing FlowDrop's existing interrupt / human-in-the-loop (ChoiceNode) machinery** rather than introducing new pause infrastructure. ## Motivation Any agent-builder eventually wants *"pause and ask me before this tool node runs"* for outward-facing or irreversible actions (publish, send mail, external API writes, delete). Today `flowdrop_node_type` has no risk/confirmation field, so downstream… ### [Confirmation is governance, not a processor property: replace the requires_confirmation tri-state with a confirmation settings map](https://git.drupalcode.org/project/flowdrop/-/work_items/3592384) State: opened | Updated: 2026-08-09 | Author: Shibin Das (D34dMan) | Assigned: unassigned | Labels: Description: ## Summary 2.1.0 shipped the confirmation gate (#3592383): `requires_confirmation` tri-state on node types, effective value `type === TRUE ? TRUE : (instance ?? type ?? pluginHasSideEffects)`, one-way ratchet hardcoded in the runtime. The runtime machinery (gate chokepoint, argument-bound consume-once consent, decline down the error channel, both planes) is right and stays. The **config model** should evolve for 2.2. ## Two realizations **1. Requiring confirmation is a governance/security decision, not a processor property.** Something as ordinary as sending an email may need confirmation f… --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- - [af65e6c1](https://git.drupalcode.org/project/flowdrop/-/commit/af65e6c17a1cb886f359a1c123ed5559f1615108) docs: fix strict-mode link failures in pages build — Shibin Das (2026-08-09T23:23:47.000+02:00) - [64568ed5](https://git.drupalcode.org/project/flowdrop/-/commit/64568ed5991cadd820c9fd334ffc0954c0891d05) docs(flowdrop_node_type): resync the RT-GATE-14 binding token and coverage counts — Shibin Das (2026-08-09T21:39:07.000+02:00) - [dd9fbf79](https://git.drupalcode.org/project/flowdrop/-/commit/dd9fbf799b8a6e88a2892afe826855f4ed70e1a7) docs(flowdrop): write the 2.2.0 release docs — changelog, upgrade path, trust boundary — Shibin Das (2026-08-09T21:37:45.000+02:00) - [d8e4ba97](https://git.drupalcode.org/project/flowdrop/-/commit/d8e4ba97ccd166ea411f17e14a762edd153ddafe) feat(flowdrop_node_type): dedicated permission for confirmation governance — Shibin Das (2026-08-09T21:29:17.000+02:00) - [896e566a](https://git.drupalcode.org/project/flowdrop/-/commit/896e566a1f719129dee01766d445c8c2cc9158cc) fix(flowdrop_interrupt): assign gate interrupts to the initiator, surface unassigned ones — Shibin Das (2026-08-09T21:18:56.000+02:00) - [cea357d3](https://git.drupalcode.org/project/flowdrop/-/commit/cea357d3f89a73e39eec61a255b3db1dc885f742) fix(flowdrop_runtime): redact resolved secrets from the persisted gate prompt — Shibin Das (2026-08-09T21:05:37.000+02:00) - [c5983872](https://git.drupalcode.org/project/flowdrop/-/commit/c5983872683f7a65f1817ecdaf8806ad9dae9c96) fix(flowdrop_node_type): fold the legacy requires_confirmation forward in preSave() — Shibin Das (2026-08-09T20:48:14.000+02:00) - [aec1ab76](https://git.drupalcode.org/project/flowdrop/-/commit/aec1ab767578c12b7e5aa218b5dc0db9e2bff000) fix(flowdrop_node_type): save only what the confirmation post_updates change — Shibin Das (2026-08-09T20:40:41.000+02:00) - [885186ee](https://git.drupalcode.org/project/flowdrop/-/commit/885186eeac5d5f07b424f493f2aefeb2f866e26a) fix(flowdrop_runtime): fail closed when the gate derivation cannot resolve the plugin — Shibin Das (2026-08-09T20:40:33.000+02:00) - [7c5e327c](https://git.drupalcode.org/project/flowdrop/-/commit/7c5e327cf845f6f84efa20720b1c04e95f9b25a7) fix(flowdrop_interrupt): gate interrupts expire with cancellation semantics — Shibin Das (2026-08-09T20:26:19.000+02:00) - [d91d433e](https://git.drupalcode.org/project/flowdrop/-/commit/d91d433e5c5b742a7ea1361db0e7d9dc1bd8b4f7) fix(flowdrop_interrupt): make the gate's consent consume-once atomic — Shibin Das (2026-08-09T20:15:51.000+02:00) - [3fa367b9](https://git.drupalcode.org/project/flowdrop/-/commit/3fa367b98f9ccfb22b19c2619f197932607f2197) docs(flowdrop): rewrite the gate rules for governance — RT-GATE-7..10 — Shibin Das (2026-08-09T19:32:12.000+02:00) - [b958834f](https://git.drupalcode.org/project/flowdrop/-/commit/b958834f6513894d8ec5695c027ec4139c79c2a3) feat(flowdrop_node_type): serve the confirmation controls to the editor — Shibin Das (2026-08-09T19:27:57.000+02:00) - [1b4f4f79](https://git.drupalcode.org/project/flowdrop/-/commit/1b4f4f792575d690327fe2b056ea5687ea50658a) feat(flowdrop_runtime): resolve the confirmation gate governance-first — Shibin Das (2026-08-09T19:27:42.000+02:00) - [28e88d19](https://git.drupalcode.org/project/flowdrop/-/commit/28e88d19e1bcedf609d5f0aa58950303c49b4a4f) feat(flowdrop_node_type): confirmation becomes a governance settings map — Shibin Das (2026-08-09T19:12:20.000+02:00) - [69a5af0e](https://git.drupalcode.org/project/flowdrop/-/commit/69a5af0e15fc88756184e88f338bc23c9c429ff2) chore(release): 2.1.0 — the confirmation gate, non-breaking by construction — Shibin Das (2026-08-09T17:45:38.000+02:00) - [1b78841c](https://git.drupalcode.org/project/flowdrop/-/commit/1b78841c668b776cbfce88dca8fca64571004845) feat(flowdrop_node_type): grandfather existing node types out of the gate — Shibin Das (2026-08-09T17:38:08.000+02:00) ======================================================================== ## [18] summariseModule:langfuse:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Langfuse (machine name: langfuse) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a technical developer audience. Focus on: what was merged or shipped, specific bugs fixed, APIs changed, and what is blocking progress. Be specific — mention function names, module names, and MR references where relevant. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: Abhisek Mazumdar (abhisekmazumdar)". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

                              Langfuse

                              then use

                              ,

                              ,

                                /
                              • , and as needed. Output only the HTML fragment with no surrounding , , or
                                tags. After the project summary prose, add a single subsection titled "

                                How can I help on this project?

                                " aimed at a developer. Suggest 2-3 concrete technical actions a contributor could take right now. Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, check the data for each issue: - If an issue shows a Related MR with state 'opened', do NOT suggest creating a patch or MR — one already exists. Suggest reviewing it instead. - If all Related MRs for an issue are merged, do NOT suggest reviewing them — they are already done. - If an issue is unassigned with no Related MRs, it is a good candidate to pick up. - Only suggest actions that are genuinely still needed given the current state in the data above. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). (none) --- MERGE REQUESTS (24h) --- ### [Issue #3548465: Add createScore() for feedback and a langfuse_feedback submodule](https://git.drupalcode.org/project/langfuse/-/merge_requests/6) State: opened | Author: Abhisek Mazumdar (abhisekmazumdar) | Branch: 3548465-implement-feedback | 802 diff lines Description: Closes #3548465 --- COMMITS (24h) --- (none) ======================================================================== ## [19] summariseModule:agui:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AG-UI (machine name: agui) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a technical developer audience. Focus on: what was merged or shipped, specific bugs fixed, APIs changed, and what is blocking progress. Be specific — mention function names, module names, and MR references where relevant. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: project update bot (Project-Update-Bot)". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

                                AG-UI

                                then use

                                ,

                                ,

                                  /
                                • , and as needed. Output only the HTML fragment with no surrounding , , or
                                  tags. After the project summary prose, add a single subsection titled "

                                  How can I help on this project?

                                  " aimed at a developer. Suggest 2-3 concrete technical actions a contributor could take right now. Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, check the data for each issue: - If an issue shows a Related MR with state 'opened', do NOT suggest creating a patch or MR — one already exists. Suggest reviewing it instead. - If all Related MRs for an issue are merged, do NOT suggest reviewing them — they are already done. - If an issue is unassigned with no Related MRs, it is a good candidate to pick up. - Only suggest actions that are genuinely still needed given the current state in the data above. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Automated Drupal 12 compatibility fixes for agui 1.0.x-dev](https://git.drupalcode.org/project/agui/-/work_items/3590037) State: opened | Updated: 2026-08-09 | Author: project update bot (Project-Update-Bot) | Assigned: unassigned | Labels: Description: ## Problem/Motivation This is an automated issue to help make this module compatible with Drupal 12. Changes will periodically be added to this issue that remove deprecated API uses. The changes are posted by the [Project Update Bot](https://www.drupal.org/u/project-update-bot) official user account. This account will not receive any issue credit contributions. To stop the bot from posting further updates, post a comment containing `/ProjectUpdateBot:ignore` anywhere in its body. The bot will then leave this issue alone without it needing to be closed. ## Proposed resolution A merge reque… ### [[META] Improve Drupal Assistant Implementation](https://git.drupalcode.org/project/agui/-/work_items/3572388) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: Bryan Sharpe (b_sharpe) | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [b_sharpe](https://www.drupal.org/user/2512258) >>> Problem/Motivation The current Drupal Assistant implementation in the demo page was a POC meant to show it can work with AG-UI, this should instead align to become a replacement for the ai_chatbot (Deepchat). This might spawn AI module tickets so we can hook into the events used. We should align also with the Polling service so this is where we could emit ag-ui events. I believe the following could/should work: A single, non-streamed request with all events - This just needs a refactor, technicall… --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/agui/-/merge_requests/30) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 68 diff lines Description: Relates to #3590037. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-916232. --- COMMITS (24h) --- (none) ======================================================================== ## [20] stripNameAttribution:agui ======================================================================== You are correcting a project digest section. The prose wrongly attributes work to specific people. Rewrite only the sentences that name any of these people so they describe the work in the passive voice without naming anyone: project update bot Rules: - Do not name any of those people anywhere except a trailing "Contributors:" line. - Keep the trailing "Contributors: project update bot (Project-Update-Bot)" line exactly as-is (add it if missing). - Leave every other sentence, HTML tag, link, and citation exactly as-is. - Output the full corrected fragment and nothing else. --- SECTION ---

                                  AG-UI

                                  Activity in the AG-UI module over the past 24 hours focused on automated compatibility improvements for Drupal 12. A new Automated Drupal 12 compatibility fixes for agui 1.0.x-dev issue was opened to track removal of deprecated API uses, with corresponding Automated Project Update Bot fixes merge request submitted. The MR introduces changes across 68 lines to address deprecation warnings.

                                  The [META] Improve Drupal Assistant Implementation issue also saw activity. This meta issue tracks work to refactor the current proof-of-concept Drupal Assistant demo page to align with the ai_chatbot (Deepchat) module and integrate with the Polling service for AG-UI event emission. The work aims to move from a proof-of-concept to a production-ready implementation that properly hooks into AI module events.

                                  How can I help on this project?

                                  Review the open Automated Project Update Bot fixes merge request to verify the Drupal 12 compatibility changes are appropriate. Help scope out child issues for the Drupal Assistant meta by identifying specific refactoring tasks needed to integrate with the ai_chatbot module and Polling service.

                                  Contributors: project update bot (Project-Update-Bot)

                                  ======================================================================== ## [21] generateTldr:developer ======================================================================== You are an editor distilling a Drupal AI project newsletter into its most important highlights. You are writing for a technical developer audience. Be specific — name modules, merged features, and critical bugs. Read all the module summaries below. Separate the highlights into two categories: - SHIPPED: things that were merged, fixed, released, or completed during this period. - ONGOING: things that are actively in progress, under review, or blocked. Be specific — name the module, what happened, and why it matters. Do not use emoticons or mdashes. Do not include any text outside the two sections. When you mention a specific issue or merge request, add an inline citation using [N] where N is the reference number from the list below. You may cite multiple references per item, e.g. [1][3]. Place citations immediately after the relevant phrase, before any punctuation. Format as two HTML sections. Use exactly this structure (all
                                • elements must be inside the
                                    , never outside it):

                                    Shipped

                                    1. Title here — One sentence explanation [1].
                                    2. Another title — One sentence explanation.

                                    Ongoing

                                    1. Title here — One sentence explanation [2].
                                    Up to 5 items per section. Do not output any text, tags, or characters outside these two sections. Output only the HTML fragment, no surrounding tags. --- REFERENCE LIST --- [1] Add thumbs-up and thumbs-down icons to the shared AI icon set (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586660 [2] Automated Drupal 12 compatibility fixes for ai 2.0.x-dev (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586525 [3] Document FunctionalJavascript test conventions and add CI check for ungrouped/unrecorded tests (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3582633 [4] AI Automator Token Replacement with removing unresolved Tokens (Checkbox?) (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586535 [5] Drupal 11.4 DeepChat Block does not work with Webprofiler enabled (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586615 [6] Introduce a modern AI Chatbot frontend library (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586571 [7] Provide proper support for "unconfigured" AI provider state (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3572645 [8] The Toolbar Chatbot runs the fold out animation on page reload (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3568246 [9] ai_ckeditor: streamGenerateContent causes 400 Bad Request with Gemini 2.x models (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586425 [10] Chatbot closes itself when adding a modal (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3499451 [11] Preserve HTML in streamed output (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586558 [12] Indexing breaks with custom SearchAPI DataSource (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3575992 [13] Accept input and output as typed interfaces in the AI request events (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3567673 [14] non streaming broken (fiber branch) (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586457 [15] Fix Translate Text Explorer form functionality (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3553353 [16] [AI Prompts] Update the Type Casing of Entities/Permissions (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3574417 [17] How does the provider notify of better models (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3575689 [18] Research: Open standard for saving one request (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3566569 [19] Provide AI usage reports in Drupal admin panel (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3535260 [20] AI Agents framework built on Symfony AI Agent (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1923 [21] Automated Project Update Bot fixes (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1673 [22] Issue #3586535: AI Automators strip unresolved tokens from prompts (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1884 [23] [META] 2026 AI Inside Roadmap to DrupalCon Rotterdam 2026 (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3586657 [24] Drupal AI UX meeting 3 August 2026 (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3586607 [25] [META] 2026 Outside-in / Innovation Roadmap (draft) (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3576908 [26] [Meta] AI Content Review Workflow (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3545606 [27] Start setting up AI Starterkit (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3569199 [28] Create documentation on how to create issues that are testable on DrupalForge (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3583362 [29] GitLab workflow automation for AI Initiative repos (exploration + rollout) (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3586474 [30] UX: Install and investigate WordPress 7.x for new AI features (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3586595 [31] Create AI Validations Recipe (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3585699 [32] Automated Drupal 12 compatibility fixes for ai_integration_eca 1.0.x-dev (ai_integration_eca, Issue) — https://git.drupalcode.org/project/ai_integration_eca/-/work_items/3585018 [33] Automated Project Update Bot fixes (ai_integration_eca, MR) — https://git.drupalcode.org/project/ai_integration_eca/-/merge_requests/13 [34] Run more than one test group in Bulk - Test Collections? (ai_agents_test, Issue) — https://git.drupalcode.org/project/ai_agents_test/-/work_items/3541324 [35] Image Embeddings (gemini_provider, Issue) — https://git.drupalcode.org/project/gemini_provider/-/work_items/3588392 [36] Implement getSupportedCapabilities method in Provider class (gemini_provider, Issue) — https://git.drupalcode.org/project/gemini_provider/-/work_items/3589184 [37] Add support for batch embeddings (gemini_provider, Issue) — https://git.drupalcode.org/project/gemini_provider/-/work_items/3589183 [38] #3569845: Add Oauth Scope Validation (mcp, MR) — https://git.drupalcode.org/project/mcp/-/merge_requests/44 [39] Automated Drupal 12 compatibility fixes for ai_agents 1.4.x-dev (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3586038 [40] Add limits on how often a tool can run (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3547995 [41] Let an agent use a role when running a tool (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3518167 [42] [DISCUSS] Make it possible to create tool instances (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3552038 [43] Allow agents to have permissions, user or a role (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3586019 [44] AI Agent entity form should reject machine names that collide with existing code-plugin IDs (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3586026 [45] Make it possible to restrict the order of tools during agent executions (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3560681 [46] Use the `ai_json_schema` editor for the AI Agent structured-output schema field (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3586042 [47] feat: Per-tool approval mode (pre-approved / approve-once / always) with loop pause-resume (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3586020 [48] Allow callers to supply additional tags for the chat calls made by AiAgentEntityWrapper (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3586055 [49] Research Scratchboards (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3576571 [50] Use streamed chat for agents (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3538174 [51] Give a parent agent possibility to forward request as is (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3550098 [52] Create implementation of ShortTermMemory (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3546411 [53] Automated Project Update Bot fixes (ai_agents, MR) — https://git.drupalcode.org/project/ai_agents/-/merge_requests/282 [54] fix: #3582961 fail closed when tool input is invalid or missing (tool, MR) — https://git.drupalcode.org/project/tool/-/merge_requests/113 [55] Resolve "Create a skill for generating Tool plugins (best practices, how-to, placement)" (tool, MR) — https://git.drupalcode.org/project/tool/-/merge_requests/93 [56] fix: #3582960 validate every multiple input item (tool, MR) — https://git.drupalcode.org/project/tool/-/merge_requests/112 [57] Dependency Dashboard (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591657 [58] PHPStan failing on global $argv usage (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591931 [59] Allow per-node override of Content Template via checkbox in node selector (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3567225 [60] Canvas AI: Cover the error path that clears stored agent state (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591927 [61] Canvas AI: Add Playwright coverage for the component agent hop loop (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591926 [62] Canvas AI: Add a Drupal Canvas Agent that answers general questions (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591924 [63] Canvas AI: Research how a user can cancel a running chat turn (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591923 [64] Canvas AI: Add end-to-end kernel coverage for the dev page builder agent (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591922 [65] Canvas AI: Add a dev page builder agent and wire the placement tools (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591921 [66] Canvas AI: Add a catalog-only parameter to the get_component_context tool (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591920 [67] Canvas AI: Run the agent selected in configuration instead of a hardcoded one (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591919 [68] Canvas AI: Expose Props of Blocks to the Agent (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3569120 [69] Canvas AI: Client-side orchestration loop for Canvas AI(POC) (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591615 [70] Canvas AI: Add Tools dropdown to chat UI (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591856 [71] Canvas AI: page builder discards the whole build when the LLM names a region that does not exist (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591876 [72] fix(deps): update npm minor and patch (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1238 [73] fix: #3591931 Do not rely on $argv being a global (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1485 [74] bug: #3591839 Preserve the query string when stripping the language prefix; a... (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1387 [75] task: #3567225 Make the component tree loader extensible (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/948 [76] Pre-1.0 documentation, trust, and compatibility follow-up to issue 3586363 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586382 [77] Remove max_items context limit and rely on the token budget (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586378 [78] Document Purpose field guidance for conditional subcontext selection (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586390 [79] [Meta] Prepare CCC for Inside AI Rotterdam demo (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586386 [80] Create CCC recipe for Inside Rotterdam demo (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586385 [81] Add context item Priority field and use it for selection ordering (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586376 [82] Rename entity bundle and target entity scope plugins for better DX (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586276 [83] Clarify and stabilize the scope plugin extension boundary for 1.0 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586392 [84] Introduce more granular permissions to CCC (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3563036 [85] Create graphic to explain how context scope works (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3571104 [86] Assess possible 1.0 and 1.1 features and UX/DX improvements following TDT questions (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586363 [87] Align scope scoring, language service, and contextual selection behavior (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586388 [88] Sprint 16 CCC roadmap updates, sprint planning, and issue triage (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586368 [89] Recruit additional CCC beta testers (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586235 [90] Update CCC maintainers in README.md (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586366 [91] Drupal 10 does not invoke attribute-based theme and Scheduler hooks (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586344 [92] Add content type context scope for MVP (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3570934 [93] [Spike] Complete scope plugin persistence API: manager orchestration, target entity encapsulation, and plugin-driven admin/selection (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586243 [94] Review and update CCC permissions before rc1 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586358 [95] Document the AI Context role and permission matrix for 1.0 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586395 [96] Automated Drupal 12 compatibility fixes for ai_context 1.0.x-dev (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586269 [97] Resolve `use_default` provider config for conditional subcontext selection (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586391 [98] CCC QA scripts for 1.0 testing (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586226 [99] Install `target_entities` field storage when Dynamic Entity Reference is enabled on existing sites (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586375 [100] Test current conditional subcontext selection before changing the prompt (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586351 [101] Review and document context selection ranking factors before 1.0 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586365 [102] Redesign selection modes as a nested Minimal / Relevant / Broad ladder and remove match_all (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586394 [103] Create multi-vocabulary taxonomy scope plugin (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586237 [104] [Meta] CCC MVP 1.0 roadmap (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3567798 [105] Create CCC beta3 and beta4 and status update video (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586333 [106] Implement plugin-based generic context consumers and unified consumer configuration (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586346 [107] [Meta] Prepare demo content and demo context items for the CCC to show how it works (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586339 [108] Clarify scope eligibility, ranking, and limits in UI help and documentation (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586348 [109] Pre-1.0 context selection reliability and diagnostics follow-up to issue 3586363 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586383 [110] Persist context-item token counts and show token-budget usage in CCC UI (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586379 [111] QA team start testing CCC to get familiar with functionality and create QA plan (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586342 [112] "Global context" checkbox description renders a literal
                                    instead of a line break (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586369 [113] Issue #3586378: Remove max_items context limit and rely on token budget. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/244 [114] Issue #3586383: Pre-1.0 context selection reliability and diagnostics follow-up. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/252 [115] Issue #3586382: Pre-1.0 documentation, trust, and compatibility follow-up. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/253 [116] Issue #3586376: Add context item priority field and selection tie-breakers. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/245 [117] Issue #3586276: Rename entity bundle and target entity scope plugins for better DX (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/195 [118] Issue #3586390: Document purpose guidance for conditional subcontext. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/246 [119] Issue #3586392: Clarify and stabilize scope plugin extension boundary for 1.0. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/249 [120] Issue #3586243: Complete scope plugin API before RC1: persistence, form encapsulation, validation, capability flags, and documented interface sections. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/164 [121] Issue #3586395: Document the AI Context role and permission matrix for 1.0. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/254 [122] Issue #3586391: Resolve use_default provider for conditional subcontext. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/247 [123] Issue #3586375: Install target_entities storage when DER is enabled later. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/251 [124] Issue #3586369: Global context checkbox description renders a literal
                                    instead of a line break. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/240 [125] Issue #3586237: Add multi-vocabulary taxonomy scope plugin. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/250 [126] Issue #3586379: Persist token counts and show budget usage in CCC UI. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/248 [127] Automated Project Update Bot fixes (ai_ckeditor, MR) — https://git.drupalcode.org/project/ai_ckeditor/-/merge_requests/10 [128] Progressive indexing can drop tail chunks (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584032 [129] Batch embeddings for improved indexing performance (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584024 [130] Preview reports first batch as total chunks (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584033 [131] Clearing/resetting an index in 1x doesn't reset chunk-slicing progress so items silently re-index with zero embeddings (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584035 [132] RagTool::execute() should expose structured per-result data and check entity access (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584031 [133] Aggregate a node's translatable field-columns into a single chat request (opt-in batch translation) (ai_translate, Issue) — https://git.drupalcode.org/project/ai_translate/-/work_items/3585527 [134] Refactor translation workflow to support Tool API and agent-driven translation (ai_translate, Issue) — https://git.drupalcode.org/project/ai_translate/-/work_items/3585523 [135] InvalidArgumentException: Invalid translation language (und) when translating media entities (ai_translate, Issue) — https://git.drupalcode.org/project/ai_translate/-/work_items/3585532 [136] Feature: Translation result caching and cross-field deduplication (ai_translate, Issue) — https://git.drupalcode.org/project/ai_translate/-/work_items/3585529 [137] Add a requires_confirmation flag to flowdrop_node_type, wired to the existing interrupt/HITL engine (flowdrop, Issue) — https://git.drupalcode.org/project/flowdrop/-/work_items/3592383 [138] Confirmation is governance, not a processor property: replace the requires_confirmation tri-state with a confirmation settings map (flowdrop, Issue) — https://git.drupalcode.org/project/flowdrop/-/work_items/3592384 [139] Issue #3548465: Add createScore() for feedback and a langfuse_feedback submodule (langfuse, MR) — https://git.drupalcode.org/project/langfuse/-/merge_requests/6 [140] Automated Drupal 12 compatibility fixes for agui 1.0.x-dev (agui, Issue) — https://git.drupalcode.org/project/agui/-/work_items/3590037 [141] [META] Improve Drupal Assistant Implementation (agui, Issue) — https://git.drupalcode.org/project/agui/-/work_items/3572388 [142] Automated Project Update Bot fixes (agui, MR) — https://git.drupalcode.org/project/agui/-/merge_requests/30 --- MODULE SUMMARIES ---

                                    AI (Artificial Intelligence)

                                    Activity over the past 24 hours centered on issue triage, feedback, and one major new feature proposal. No merge requests were merged during this period.

                                    A significant new merge request was opened for an AI Agents framework built on Symfony AI Agent, introducing the ai_agent module with plugin-based runtimes, controls, input processors, and config entities. The implementation spans over 17,000 lines and includes six controls such as system_context, deny_tool, and require_approval, along with Drush commands and an agent runner service.

                                    Several issues received updates addressing specific pain points. Discussion continued on non streaming broken (fiber branch), which identifies an issue in OpenAiBasedProviderClientBase::chat() where Fiber::getCurrent() forces streaming even when not requested. Work progressed on AI Automator Token Replacement with removing unresolved Tokens via MR !1884. The ai_ckeditor: streamGenerateContent causes 400 Bad Request with Gemini 2.x models issue documents a malformed request body when calling streamGenerateContent against newer Gemini models.

                                    Other active issues include Preserve HTML in streamed output, Drupal 11.4 DeepChat Block does not work with Webprofiler enabled, and Introduce a modern AI Chatbot frontend library proposing assistant-ui as an alternative to DeepChat.

                                    How can I help on this project?

                                    Review the open AI Agents framework merge request for architecture feedback. Investigate and provide fixes for the Fiber streaming bug in OpenAiBasedProviderClientBase. Test and diagnose the Webprofiler compatibility issue with DeepChat in Drupal 11.4.

                                    Contributors: harivansh sharma (harivansh), project update bot (Project-Update-Bot), Rodel Duterte (rduterte)

                                    ---

                                    Drupal AI Initiative

                                    Activity this period focused on planning and coordination for DrupalCon Rotterdam. The AI Content Review Workflow meta issue was closed, marking completion of that feature set. Discussion continued on the 2026 AI Inside Roadmap to DrupalCon Rotterdam 2026, which aims to demonstrate AI Search, AI content review, AI translation, editor-facing chat, observability, and guardrails working together on a single multilingual site deployable via Drupal Forge. The recipe does not yet install cleanly.

                                    Planning work continued on several infrastructure items: AI Starterkit setup, AI Validations Recipe creation, and GitLab workflow automation exploration. A UX task was opened to investigate WordPress 7.x AI features for reference. The DrupalForge documentation issue remains blocked on determining how to handle issues spanning multiple dev module versions.

                                    No merge requests were merged and no commits were pushed during this period.

                                    How can I help on this project?

                                    ---

                                    AI Integration - ECA

                                    An automated merge request for Drupal 12 compatibility was opened during this period. The Automated Project Update Bot fixes MR addresses deprecated API usage identified in the Automated Drupal 12 compatibility fixes for ai_integration_eca 1.0.x-dev issue. The merge request contains 478 lines of changes targeting the project-update-bot-only branch. No commits were merged during the reporting period, leaving the Drupal 12 compatibility work pending review and integration.

                                    How can I help on this project?

                                    Review the Automated Project Update Bot fixes merge request to validate the Drupal 12 compatibility changes. Test the proposed deprecation removals against current Drupal 12 APIs to ensure functionality is preserved. Provide feedback on the MR to help move it toward merge.

                                    Contributors: project update bot (Project-Update-Bot) ---

                                    AI Agents Test

                                    The AI Agents Test module saw no merges or commits during this period. One issue remains under discussion: Run more than one test group in Bulk - Test Collections?, which proposes adding functionality to execute multiple test groups simultaneously. The issue explores potential UI approaches, including a views-style bulk operations interface with checkboxes or a tagging system for test groups. This feature would support automated testing workflows and model comparison scenarios. MR !11 is related to this work.

                                    How can I help on this project?

                                    • Review the existing merge request !11 related to bulk test execution and provide feedback on the proposed approach.
                                    • Test the current implementation with different AI models to help validate the bulk operations workflow.
                                    ---

                                    Gemini Provider

                                    No merge requests were completed during this period, but several open issues saw activity around capabilities and embeddings support.

                                    Discussion continued on Add support for batch embeddings, which has been updated to reflect naming decisions and CI adjustments to load the required AI Core branch. This work would enable the Gemini provider to leverage the batchEmbedContents method when handling multiple embeddings.

                                    The Implement getSupportedCapabilities method in Provider class issue remains open. The AiProviderInterface includes a getSupportedCapabilities() method, but the Gemini provider currently returns an empty array, which will cause issues once capability checking is added to AI Core.

                                    Work on Image Embeddings is also in progress. Gemini supports file embeddings including images, but the current embedding solution only handles text.

                                    How can I help on this project?

                                    Review the merge request on Add support for batch embeddings, which is in needs review state. Help implement the getSupportedCapabilities() method to properly expose Gemini's capabilities. Test and provide feedback on image embedding functionality once available.

                                    ---

                                    Model Context Protocol

                                    Activity in the Model Context Protocol module over the past 24 hours focused on OAuth security improvements. A merge request for Add Oauth Scope Validation was opened, introducing validation for OAuth scopes across 865 lines of changes. This work aims to strengthen authentication controls within the module's OAuth implementation. The merge request is currently awaiting review before it can be integrated into the codebase.

                                    How can I help on this project?

                                    Review the open OAuth scope validation merge request to provide feedback on the implementation and help move it toward completion. Testing the changes against various OAuth configurations would be particularly valuable.

                                    Contributors: Shubham Goel (shubhamgoel)

                                    ---

                                    AI Agents

                                    The project saw extensive planning and issue refinement during the reporting period, though no merge requests were landed. The Automated Project Update Bot fixes merge request was opened to address Automated Drupal 12 compatibility fixes for ai_agents 1.4.x-dev, containing automated compatibility updates for Drupal 12.

                                    Several new issues were filed focusing on agent configuration and control. AI Agent entity form should reject machine names that collide with existing code-plugin IDs identifies a namespace collision bug in AiAgentManager::findDefinitions() where config entities can silently override code-defined plugins. feat: Per-tool approval mode (pre-approved / approve-once / always) with loop pause-resume proposes approval gates for sensitive tool execution. Allow callers to supply additional tags for the chat calls made by AiAgentEntityWrapper addresses ai_logging correlation gaps. Use the ai_json_schema editor for the AI Agent structured-output schema field suggests replacing the plain textarea with the ai_json_schema element for better validation and editing.

                                    How can I help on this project?

                                    Review the open Automated Project Update Bot fixes merge request for Drupal 12 compatibility. Pick up AI Agent entity form should reject machine names that collide with existing code-plugin IDs to add validation in the entity form. Work on Use the ai_json_schema editor for the AI Agent structured-output schema field to improve the schema editing UX.

                                    Contributors: project update bot (Project-Update-Bot) ---

                                    Tool API

                                    Three merge requests addressing tool input validation and developer experience were opened during this period. fix: #3582960 validate every multiple input item updates TypedInputsTrait to validate all items in multiple inputs rather than stopping at the first violation, ensuring comprehensive error reporting. fix: #3582961 fail closed when tool input is invalid or missing hardens ToolBase::access() to catch InvalidArgumentException during input value retrieval, returning a forbidden result with uncacheable denial to prevent exposure of validation details. The type signature for the $return_as_object parameter was also aligned with ToolInterface. Meanwhile, Resolve "Create a skill for generating Tool plugins (best practices, how-to, placement)" introduces developer-facing guidance for plugin creation. All three requests remain open awaiting review.

                                    How can I help on this project?

                                    Review and test MR !112 or MR !113 to verify input validation behavior. Test MR !93 for completeness and accuracy of plugin generation guidance.

                                    Contributors: Alex Urevick-Ackelsberg (alexua), Marcus Johansson (Marcus_Johansson)

                                    ---

                                    Drupal Canvas

                                    Canvas AI Development

                                    A significant roadmap of Canvas AI improvements is now tracked across multiple new work items targeting Sprint 16. The focus is on multi-agent orchestration, tool wiring, and UX enhancements. Key areas include adding a general-purpose Drupal Canvas Agent for answering questions, wiring the dev page builder agent with placement tools, and adding a catalog-only parameter to the get_component_context tool. A major infrastructure change will make the controller run the agent selected in configuration rather than a hardcoded instance. Test coverage is a priority, with new issues opened for Playwright coverage of the agent hop loop and end-to-end kernel tests for the page builder agent.

                                    Two active issues received updates: page builder discards the whole build when the LLM names a region that does not exist and Expose Props of Blocks to the Agent. Work continues on the client-side orchestration loop POC and Tools dropdown for the chat UI.

                                    Bug Fixes and Code Quality

                                    An open merge request addresses PHPStan failing on global $argv usage to eliminate intermittent pipeline failures. A language-prefix redirect issue was refined in MR !1387 to preserve query strings and strip default language prefixes correctly. Dependency updates are tracked via Renovate, with MR !1238 proposing npm package updates.

                                    How can I help on this project?

                                    Contributors: **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Fons Vandamme (f0ns), Rajab Natshah (RajabNatshah), Tim Plunkett (tim.plunkett)

                                    ---

                                    Context Control Center (CCC)

                                    Three significant merges landed during the period, advancing the module toward its 1.0 release. The Pre-1.0 documentation, trust, and compatibility follow-up (MR !253) was merged, completing documentation, API annotation, security guidance, and release-policy work identified during TDT preparation. The scope plugin DX rename (MR !195) was also merged, renaming AiContextScopeEntityBundle to Entity Types and AiContextScopeTargetEntity to Entity Item for clearer developer experience. Additionally, the Purpose field guidance for conditional subcontext (MR !246) was merged, providing authors clearer inline documentation on writing effective Purpose text to improve AI-based selection decisions.

                                    Several issues were closed after validation, including conditional subcontext selection testing, permissions review, and Drupal 10 attribute-based hook invocation fixes. Progress remains blocked on several fronts: scope scoring and language alignment requires coordination with another issue, and multiple open MRs—including token budget removal, priority field addition, and provider config resolution—await review before stable release.

                                    How can I help on this project?

                                    Review the open MR for Global context checkbox description rendering (!240), which fixes a literal <br> display bug. Test the use_default provider config resolution MR !247 with real providers to verify conditional subcontext selection works correctly. Help draft QA scripts for 1.0 testing, which currently has no related MRs.

                                    Contributors: Juan Correa (jucs7), Kristen Pol (kepol) [2], Tamas Balog (tbalog) [1]

                                    ---

                                    AI CKEditor

                                    Activity over the past 24 hours was limited to automated maintenance. A merge request titled Automated Project Update Bot fixes was opened, containing changes from an automated project update run. The MR spans 432 lines of diff and remains in an opened state. No commits were pushed and no issues were updated during the reporting period.

                                    How can I help on this project?

                                    Review the Automated Project Update Bot fixes merge request to assess whether the automated changes are safe to merge. Check the project's issue queue for unassigned bugs or feature requests that need attention.

                                    Contributors: project update bot (Project-Update-Bot)

                                    ---

                                    AI Search

                                    No merge requests or commits landed during this period. Activity focused on issue tracking and triage for progressive indexing problems introduced by recent chunk-slicing work.

                                    Five issues were updated, all tagged for the current sprint. Two critical bugs affect the progressive/long-chunk embedding strategy: Progressive indexing can drop tail chunks describes a tokenizer mismatch where computeItemChunks() hardcodes gpt-3.5 while getEmbedding() uses the configured tokenizer, causing items to be marked complete before all chunks are embedded (106 counted vs 370 actually produced in one case). A related clearing bug is tracked in Clearing/resetting an index in 1x doesn't reset chunk-slicing progress, where search_api_item.processed_chunks state persists after index resets, causing items to silently re-index with zero embeddings.

                                    The Preview reports first batch as total chunks issue documents a UX problem where the index fields preview form shows only the first slice (up to ten chunks) as the total. Meanwhile, RagTool::execute() should expose structured per-result data and check entity access requests API improvements to surface per-result metadata and entity access checks, and Batch embeddings for improved indexing performance is a placeholder for porting batch functionality from AI Core.

                                    How can I help on this project?

                                    Pick up Progressive indexing can drop tail chunks and investigate the tokenizer mismatch between computeItemChunks() and getEmbedding(). Work on the index clearing bug to ensure search_api_item.processed_chunks resets properly. Add entity access checks to RagTool::execute() per the RagTool structured output issue.

                                    ---

                                    AI translate

                                    No code was merged during this period. Four design and architecture issues were opened or updated, all aimed at improving translation efficiency and workflow flexibility.

                                    The current single field-column per chat request approach is being reconsidered. Aggregate a node's translatable field-columns into a single chat request (opt-in batch translation) proposes batching multiple columns into one prompt to avoid re-sending identical instructions on every field. This would significantly reduce token usage for typical multi-field content.

                                    A broader refactoring is under discussion in Refactor translation workflow to support Tool API and agent-driven translation, which aims to consolidate the current UI batch and Drush workflows with a new Tool API entry point, avoiding logic duplication across three translation triggers.

                                    Two concrete issues were also raised: InvalidArgumentException: Invalid translation language (und) when translating media entities blocks media translation due to improper language handling, and Feature: Translation result caching and cross-field deduplication proposes a caching layer to avoid re-translating unchanged or repeated content.

                                    How can I help on this project?

                                    ---

                                    FlowDrop

                                    FlowDrop shipped two releases over the reporting period. Version 2.1.0 introduced a confirmation gate for tool nodes, closing Add a requires_confirmation flag to flowdrop_node_type, wired to the existing interrupt/HITL engine. The feature wires a requires_confirmation flag on flowdrop_node_type into the existing interrupt and human-in-the-loop machinery, allowing operators to pause workflows before risky actions execute.

                                    Work immediately continued toward 2.2.0, which refactors the confirmation model from a tri-state processor property into a governance settings map. Multiple fixes landed in flowdrop_runtime, flowdrop_interrupt, and flowdrop_node_type: gate interrupts now expire with cancellation semantics, consent consumption is atomic, resolved secrets are redacted from persisted gate prompts, and unassigned gate interrupts are surfaced. A dedicated permission for confirmation governance was added, and the runtime now resolves confirmation governance-first and fails closed when plugin resolution fails. Legacy requires_confirmation values are folded forward in preSave(). Documentation updates include 2.2.0 release notes, upgrade paths, trust boundary coverage, and rewritten gate governance rules (RT-GATE-7 through RT-GATE-10).

                                    How can I help on this project?

                                    Review the design proposal in Confirmation is governance, not a processor property: replace the requires_confirmation tri-state with a confirmation settings map, which remains open. Test the 2.2.0 governance refactor against your use cases, particularly around permission boundaries and upgrade paths from 2.1.0.

                                    Contributors: Shibin Das [17] ---

                                    Langfuse

                                    A new merge request was opened to add feedback capabilities to the Langfuse module. The Add createScore() for feedback and a langfuse_feedback submodule proposal introduces a createScore() method and packages feedback functionality into a dedicated submodule. The merge request spans over 800 lines of diff and is currently awaiting review.

                                    No commits were pushed or merge requests merged during this period. The feedback implementation represents the primary development activity for the module over the past 24 hours.

                                    How can I help on this project?

                                    Review the feedback submodule merge request to provide technical feedback on the createScore() implementation and API design. Test the functionality against Langfuse's scoring API to verify integration correctness.

                                    Contributors: Abhisek Mazumdar (abhisekmazumdar)

                                    ---

                                    AG-UI

                                    Activity in the AG-UI module over the past 24 hours focused on automated compatibility improvements for Drupal 12. A new Automated Drupal 12 compatibility fixes for agui 1.0.x-dev issue was opened to track removal of deprecated API uses, with corresponding Automated Project Update Bot fixes merge request submitted. The MR introduces changes across 68 lines to address deprecation warnings.

                                    The [META] Improve Drupal Assistant Implementation issue also saw activity. This meta issue tracks work to refactor the current proof-of-concept Drupal Assistant demo page to align with the ai_chatbot (Deepchat) module and integrate with the Polling service for AG-UI event emission. The work aims to move from a proof-of-concept to a production-ready implementation that properly hooks into AI module events.

                                    How can I help on this project?

                                    Review the open Automated Project Update Bot fixes merge request to verify the Drupal 12 compatibility changes are appropriate. Help scope out child issues for the Drupal Assistant meta by identifying specific refactoring tasks needed to integrate with the ai_chatbot module and Polling service.

                                    Contributors: project update bot (Project-Update-Bot)

                                    ======================================================================== ## [22] factcheck:tldr:developer ======================================================================== Layer-1 corrections: 0 Judge flags: 3 ======================================================================== ## [23] summariseModule:ai:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI (Artificial Intelligence) (machine name: ai) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a non-technical executive audience (CEO/leadership level). Focus on: business impact, strategic progress, risks, and what is being delivered. Avoid technical jargon. Do not mention branch names, function names, or API details. Explain what each piece of work means for users or the project's goals. Keep risk language proportionate to the stage of the software. For alpha or beta modules, unassigned bugs or open issues are normal and expected — do not describe them as 'reputational risks' or use alarmist framing. Reserve strong risk language for issues that are genuinely critical or blocking a stable release. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: harivansh sharma (harivansh), project update bot (Project-Update-Bot), Rodel Duterte (rduterte)". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

                                    AI (Artificial Intelligence)

                                    then use

                                    ,

                                    ,

                                      /
                                    • , and as needed. Output only the HTML fragment with no surrounding , , or
                                      tags. After the project summary prose, add a single subsection titled "

                                      How can I help on this project?

                                      " aimed at a non-technical executive. Suggest 2-3 concrete, high-level ways a leader could support or unblock progress (e.g. resourcing, stakeholder alignment, decision-making, funding, advocacy). Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, verify it against the issue data. Do not suggest actions that are already in progress or covered by an existing MR — for example, do not suggest that work needs to be started if an issue already has a Related MR. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Add thumbs-up and thumbs-down icons to the shared AI icon set](https://git.drupalcode.org/project/ai/-/work_items/3586660) State: opened | Updated: 2026-08-09 | Author: Aidan Foster (aidanfoster) | Assigned: unassigned | Labels: Description: The shared AI icon set added in #3571220 does not include thumbs-up or thumbs-down. Feedback controls are appearing across the AI ecosystem (AI Answers, AI Content Review) and each one is currently rolling its own, mostly as raw emoji, so the glyph varies by operating system and browser and does not match the rest of the AI admin UI. ## Proposed resolution Add `ai-icon--thumbs-up` and `ai-icon--thumbs-down` variations to `ai_global.css`, sourced from Phosphor per the icon source hierarchy agreed in #3567389. Use these specific icons: - Thumbs up: https://phosphoricons.com/?q=ThumbsUp - Thu… ### [Automated Drupal 12 compatibility fixes for ai 2.0.x-dev](https://git.drupalcode.org/project/ai/-/work_items/3586525) State: opened | Updated: 2026-08-09 | Author: project update bot (Project-Update-Bot) | Assigned: unassigned | Labels: category::task, priority::normal, state::accepted Description: ## Problem/Motivation This is an automated issue to help make this module compatible with Drupal 12. Changes will periodically be added to this issue that remove deprecated API uses. The changes are posted by the [Project Update Bot](https://www.drupal.org/u/project-update-bot) official user account. This account will not receive any issue credit contributions. To stop the bot from posting further updates, post a comment containing `/ProjectUpdateBot:ignore` anywhere in its body. The bot will then leave this issue alone without it needing to be closed. ## Proposed resolution A merge reque… ### [Document FunctionalJavascript test conventions and add CI check for ungrouped/unrecorded tests](https://git.drupalcode.org/project/ai/-/work_items/3582633) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: Rodel Duterte (rduterte) | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !1432 >>> [Tracker] Update Summary: [One-line status update for stakeholders] Short Description: Document FunctionalJavascript test conventions and add CI check for ungrouped/unrecorded tests Check-in Date: MM/DD/YYYY [/Tracker] Problem/Motivation The AI module has a system for running FunctionalJavascript tests in CI that relies on two conventions: Every new FJS test class must have a @group annotation with the issue number it belongs to, so the filter script (scripts/filter-functio… ### [AI Automator Token Replacement with removing unresolved Tokens (Checkbox?)](https://git.drupalcode.org/project/ai/-/work_items/3586535) State: opened | Updated: 2026-08-09 | Author: ro-no-lo | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, Needs review Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1884 [Issue #3586535: AI Automators strip unresolved tokens from prompts](https://git.drupalcode.org/project/ai/-/merge_requests/1884) | State: opened | Author: Rodel Duterte (rduterte), 237 diff lines Description: When we use the Advanced mode with Tokens in the AI Automator settings, Tokens which are not resolved by the Token system stay in the AI Prompt. This is not much text for AI, but everything what can be avoided to send to AI, should be removed. As an example. I have an Entity where I defined a textarea called field_user_prompt which can optionally (!) be used to alter the prompt I setup in the field AI automation. So there is a Token like this: [node:field_user_prompt:value]. This stays when the user left the field empty. It's only replaced when something is filled in. I do think that unresol… ### [Drupal 11.4 DeepChat Block does not work with Webprofiler enabled](https://git.drupalcode.org/project/ai/-/work_items/3586615) State: opened | Updated: 2026-08-09 | Author: jesmaster (Jesmaster) | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: Chatbot was working on Drupal 11.3, I updated to 11.4 and the chatbot doesn't open when clicked anymore, there are no javascript errors in the console log. I deleted the block and re-created it and I'm getting this AJAX error when choosing the assisstant. ### [Introduce a modern AI Chatbot frontend library](https://git.drupalcode.org/project/ai/-/work_items/3586571) State: opened | Updated: 2026-08-09 | Author: Bruno Bruno (bbruno) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: ## Description The current AI Chatbot module is tightly coupled to the DeepChat library. DeepChat does more than render the UI - it also handles the API communication, chat state, and message history. Functionality such as tool calling, conversation history, and thread management is implemented in a DeepChat-specific way, making it difficult to swap in alternative chat interfaces. [assistant-ui](https://www.assistant-ui.com/) was identified as a promising alternative - a React-based component library that supports custom API endpoints and offers significantly easier customization than DeepCha… ### [Provide proper support for "unconfigured" AI provider state](https://git.drupalcode.org/project/ai/-/work_items/3572645) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [mxr576](https://www.drupal.org/user/315522) >>> [Tracker] Update Summary: [One-line status update for stakeholders] Short Description: [One-line issue summary for stakeholders] Check-in Date: MM/DD/YYYY Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation This is the second time we have hit a WSOD with the Gemini provider where simply enabling the module can break pages that instantiate AI provider clients. See #3572638: WSOD after module enabled. At the moment, this does not look like something that can… ### [The Toolbar Chatbot runs the fold out animation on page reload](https://git.drupalcode.org/project/ai/-/work_items/3568246) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !1428 >>> [Tracker] Update Summary: [One-line status update for stakeholders] Short Description: [One-line issue summary for stakeholders] Check-in Date: MM/DD/YYYY Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation The chatbot was greatly improved with #3554510: Sync Design of Toolbar Chatbot with Canvas AI Chatbot, but one issue is that if you have a local storage to remember the position, when its open on page load it runs the open up… ### [ai_ckeditor: streamGenerateContent causes 400 Bad Request with Gemini 2.x models](https://git.drupalcode.org/project/ai/-/work_items/3586425) State: opened | Updated: 2026-08-09 | Author: josecarlosmedero | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: **Problem / Motivation** `AiRequest.php` calls `setStreamedOutput(TRUE)` for all providers. The PHP client `gemini-api-php` sends a malformed request body when calling `streamGenerateContent` against Gemini 2.x models, resulting in `400 Bad Request`. The non-streaming endpoint `generateContent` works correctly with the same payload. The error in logs: `Error invoking model response: Client error: POST https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:streamGenerateContent resulted in a 400 Bad Request response` Confirmed: the identical payload sent to `generateConten… ### [Chatbot closes itself when adding a modal](https://git.drupalcode.org/project/ai/-/work_items/3499451) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [heyyo](https://www.drupal.org/user/474388) Related to !1277 >>> Problem/Motivation ChatBot closes itself, and impossible to reopen-it, without refreshing the page Steps to reproduce 1. Create new content with CKEditor, for example basic page 2. Open ChatBot 3. Add Media into Ckeditor, we can see ChatBot closes 4. Include the Media 5. It's impossible to reopen the ChatBot ### [Preserve HTML in streamed output](https://git.drupalcode.org/project/ai/-/work_items/3586558) State: opened | Updated: 2026-08-09 | Author: Sven Decabooter (svendecabooter) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: ## Summary As reported in https://git.drupalcode.org/project/ai_translate/-/work_items/3585526, there seems to be an issue with HTML processing in streamed outputs. I wasn't able to look into the issue much closer, but the proposed fix seems to imply changes to the AI core module. ## Environment - Drupal version: 11.3.10 - Paragraphs: 8.x-1.20 Original Issue When translating basic pages, the LLM inserts \ tags after other tags like \ Example input: ``` 'De Geheimen van het Hof' is een reeks van zes speurtochten voor klassen: van het 1ste leerjaar tot en met het 6de leerjaar. De focus lig… ### [Indexing breaks with custom SearchAPI DataSource](https://git.drupalcode.org/project/ai/-/work_items/3575992) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [mxr576](https://www.drupal.org/user/315522) Related to !1321 !1248 >>> [Tracker] Update Summary: [One-line status update for stakeholders] Check-in Date: MM/DD/YYYY Blocked by: [#XXXXXX] (New issues on new lines) Additional Collaborators: @username1, @username2 Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation We have a homegrown Search API that indexes things :tm: but they are not content entities and the data source does not extend \Drupal\search_api\Plugin\search_api\datasource\ContentEntity. Wh… ### [Accept input and output as typed interfaces in the AI request events](https://git.drupalcode.org/project/ai/-/work_items/3567673) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [murz](https://www.drupal.org/user/157092) Related to !1104 >>> [Tracker] Update Summary: [One-line status update for stakeholders] Short Description: [One-line issue summary for stakeholders] Check-in Date: MM/DD/YYYY Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Now the AI Event constructors accept the $input argument as mixed type in the class Drupal\ai\Event\AiProviderRequestBaseEvent, and the same for $output in the Drupal\ai\Event\AiProviderResponseBaseEvent. There should be always typed dat… ### [non streaming broken (fiber branch)](https://git.drupalcode.org/project/ai/-/work_items/3586457) State: opened | Updated: 2026-08-09 | Author: wouters_f (wouters_frederik) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Description: ## Summary `OpenAiBasedProviderClientBase::chat()` contains a Fiber branch (line 341) that silently forces streaming on any call executed inside a PHP Fiber, even when the caller never requested streaming. This breaks non-streaming AI calls made from within Fiber-based execution contexts (e.g. `ai_search_block` with streaming disabled in block config). ## Root cause The condition on line 341 is: ```php elseif (\Fiber::getCurrent() && in_array(AiProviderCapability::StreamChatOutput, $this->getSupportedCapabilities())) { ``` `\Fiber::getCurrent()` alone is too broad — it fires for any code … ### [Fix Translate Text Explorer form functionality](https://git.drupalcode.org/project/ai/-/work_items/3553353) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [jhuhta](https://www.drupal.org/user/3387868) Related to !1333 !963 >>> Problem/Motivation When using the Translate Text Explorer, it always results in an exception: An error occurred The following error occurred while processing your request: Form errors cannot be set after form validation has finished. Of the following exception type: LogicException The reason seem to be the inconsistent use of a prefix in the form code. Steps to reproduce (required for bugs, but not feature requests) Have an translate text type of a provider (like ai_provider_d… ### [[AI Prompts] Update the Type Casing of Entities/Permissions](https://git.drupalcode.org/project/ai/-/work_items/3574417) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [robloach](https://www.drupal.org/user/61114) Related to !1223 >>> [Tracker] Update Summary: Created the issue Short Description: Update the casing of AI Prompt Types Check-in Date: 02/18/2026 Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Following #3567796: UX: AI Prompts: Improve UX around initial setup, the AI Prompts user interface has a mix of letter casing. For example: "AI Prompt type". Would be good to consolidate them so that they're all using Title Case, as similar with other entities ac… ### [How does the provider notify of better models](https://git.drupalcode.org/project/ai/-/work_items/3575689) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) >>> [Tracker] Update Summary: [One-line status update for stakeholders] Short Description: [One-line issue summary for stakeholders] Check-in Date: MM/DD/YYYY Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation We are currently setting opinionited default models in many providers as the default provider/model for a specific operation type if nothing already exists. The problem with this is that AI world moves really fast, so a model that was top of t… ### [Research: Open standard for saving one request](https://git.drupalcode.org/project/ai/-/work_items/3566569) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: harivansh sharma (harivansh) | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) >>> [Tracker] Update Summary: [One-line status update for stakeholders] Short Description: Research an open standard for exporting and importing a single AI request between logging, observability, and AI API Explorer. Check-in Date: MM/DD/YYYY [/Tracker] Problem/Motivation We currently have multiple developer and observability tools such as AI Logging, AI Observability, and AI API Explorer, each capturing AI requests in different formats and at different stages. When a request fails or behaves un… ### [Provide AI usage reports in Drupal admin panel](https://git.drupalcode.org/project/ai/-/work_items/3535260) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: Alexey Korepov (murz) | Labels: 2026Sprint14, 2026Sprint16, AI Initiative Sprint, Vienna2025 Description: >>> [!note] Migrated issue Reported by: [tonytosta](https://www.drupal.org/user/262359) Related to !826 >>> The AI module bundle should provide an easy way to view calls to AI providers - log requests and responses locally, build usage reports, available directly in the Drupal admin panel out of the box, without using any external tools. Steps to reproduce (required for bugs, but not feature requests) I will list these steps even though it is not required: Install AI module Install AI Usage Reports module See usage reports in the Drupal admin panel: logs of requests and responses, aggreg… --- MERGE REQUESTS (24h) --- ### [AI Agents framework built on Symfony AI Agent](https://git.drupalcode.org/project/ai/-/merge_requests/1923) State: opened | Author: harivansh sharma (harivansh) | Branch: 3586510-ai-agent-v1 | 17433 diff lines Description: ## Description Adds the `ai_agent` module: an AI Agents framework built on Symfony AI (`^0.12`). Runtimes are plugins: `drupal_ai` (the loop this module owns, with per-iteration events and durable checkpoints) and `symfony_ai` (wraps the vendor `AgentProcessor`). Agents, controls and input processors are plugin types; agents can also be `ai_agent` config entities. A control can pause a run for human approval and resume it in a later request. Ships 6 controls (`system_context`, `deny_tool`, `require_tool`, `force_arguments`, `require_approval`, `return_directly`), Drush commands (`agent:list… ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/ai/-/merge_requests/1673) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 5400 diff lines Description: Relates to #3586525. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-916232. --- COMMITS (24h) --- (none) ======================================================================== ## [24] summariseModule:ai_initiative:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Drupal AI Initiative (machine name: ai_initiative) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a non-technical executive audience (CEO/leadership level). Focus on: business impact, strategic progress, risks, and what is being delivered. Avoid technical jargon. Do not mention branch names, function names, or API details. Explain what each piece of work means for users or the project's goals. Keep risk language proportionate to the stage of the software. For alpha or beta modules, unassigned bugs or open issues are normal and expected — do not describe them as 'reputational risks' or use alarmist framing. Reserve strong risk language for issues that are genuinely critical or blocking a stable release. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. Do not name any individual people in this section. No one was active enough this period to list. Format your response as an HTML fragment. Start with

                                      Drupal AI Initiative

                                      then use

                                      ,

                                      ,

                                        /
                                      • , and as needed. Output only the HTML fragment with no surrounding , , or
                                        tags. After the project summary prose, add a single subsection titled "

                                        How can I help on this project?

                                        " aimed at a non-technical executive. Suggest 2-3 concrete, high-level ways a leader could support or unblock progress (e.g. resourcing, stakeholder alignment, decision-making, funding, advocacy). Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, verify it against the issue data. Do not suggest actions that are already in progress or covered by an existing MR — for example, do not suggest that work needs to be started if an issue already has a Related MR. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [[META] 2026 AI Inside Roadmap to DrupalCon Rotterdam 2026](https://git.drupalcode.org/project/ai_initiative/-/work_items/3586657) State: opened | Updated: 2026-08-10 | Author: Christoph Breidert (breidert) | Assigned: Christoph Breidert (breidert) | Labels: AI Initiative, ai::inside, roadmap Description: ## Why this roadmap exists At DrupalCon Rotterdam at the end of September we want to show a single Drupal site where AI Search, AI content review, AI translation, an editor-facing chat, observability and guardrails all work together on real, multilingual content. Rather than describing these features one by one, we let people see them working together on one site, and we let anyone launch that site for themselves in a few seconds on Drupal Forge. Most of these features already work today. The gap is almost never the core capability. The gap is that we have not yet shipped the recipes and dem… ### [Drupal AI UX meeting 3 August 2026](https://git.drupalcode.org/project/ai_initiative/-/work_items/3586607) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: category::task, meetings, priority::normal, state::accepted Description: ## Meeting Overview **Date:** Monday, August 3, 2026 **Attendees:** Aidan, Marcus, Emma, Bruno, Darren, Shashank, Kati Aidan back from leave and chairing; welcomed two new contributors (Shashank, Kati). ## Topics - **AI demo:** Installable demo bundling AI Content Review, CCC, Guardrails, AI Search, and Canvas AI (with Christoph/1X, on Drupal Forge); likely a higher-ed site, feeding the Rotterdam DriesNote. Recipe does not yet install cleanly; focus is a post-install site that explains its own features. - **EU AI Act Article 50 disclosure {#3586640}:** New separate module for AI content … ### [[META] 2026 Outside-in / Innovation Roadmap (draft)](https://git.drupalcode.org/project/ai_initiative/-/work_items/3576908) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: scott falconer (scottfalconer) | Labels: category::plan, priority::normal, roadmap, state::accepted Description: > **Updated July 23, 2026.** This is the living control issue for the Outside AI workstream. It replaces the earlier “Outside-in / Innovation” framing with an outcome-based roadmap. > > The issue links below are a deliberately small working set, not an exhaustive dependency map. We will refresh them as work lands, moves, or is replaced. The linked queues remain authoritative. Linking an issue here does not change its owner, priority, milestone, or technical direction. > > The previous detailed ticket inventory remains available in this issue’s edit history. Work not carried forward is not bein… ### [[Meta] AI Content Review Workflow](https://git.drupalcode.org/project/ai_initiative/-/work_items/3545606) State: closed | Updated: 2026-08-09 | Author: drupalbot | Assigned: Christoph Breidert (breidert) | Labels: 2026Sprint14, 2026Sprint16, AI Initiative Sprint, ai::inside Description: >>> [!note] Migrated issue Reported by: [breidert](https://www.drupal.org/user/135619) >>> Goals & Guiding Principles Provide a native Drupal way to review content with the help of AI through an intuitive user interface. This functionality should integrate seamlessly with Drupal's existing content management workflows while offering AI-powered assistance for common editorial tasks. Key principles: Examples include AI-powered content rating systems, automated suggestions for guideline compliance, content flagging for review, brand voice consistency checks, and legal/regulatory complianc… ### [Start setting up AI Starterkit](https://git.drupalcode.org/project/ai_initiative/-/work_items/3569199) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) >>> [Tracker] Update Summary: [One-line status update for stakeholders] Short Description: Research and initial setup for AI Starterkit showcase website Check-in Date: MM/DD/YYYY [/Tracker] Problem/Motivation There is a growing need to demonstrate the full production capabilities of the AI Initiatives ecosystem in a concrete, opinionated, and easy-to-consume way. While the AI module and related projects provide powerful building blocks, there is currently no canonical showcase that ties these tog… ### [Create documentation on how to create issues that are testable on DrupalForge](https://git.drupalcode.org/project/ai_initiative/-/work_items/3583362) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint16, AI Initiative Sprint, ai::inside Description: >>> [!note] Migrated issue Reported by: [afoster](https://www.drupal.org/user/594458) >>> [Tracker] Update Summary: Blocked — document how to create DrupalForge-testable issues spanning multiple dev module versions Check-in Date: 04/13/2026 Additional Collaborators: Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Many AI issues span multiple modules at once. For example, when we work on UI improvements in the AI module and need to use those same improvements in CCC, reviewers need dev versions of both modules installed together to t… ### [GitLab workflow automation for AI Initiative repos (exploration + rollout)](https://git.drupalcode.org/project/ai_initiative/-/work_items/3586474) State: opened | Updated: 2026-08-09 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint16, AI Initiative, AI Initiative Sprint Description: ## Summary Build out an automated GitLab workflow layer for the Drupal AI Initiative's GitLab projects (`project/ai`, `project/ai_agents`, providers, etc.) so that issue and MR housekeeping — state transitions, label hygiene, completeness checks, dependency review pings — happens automatically instead of requiring manual maintainer effort. This is split into two phases: 1. **Exploration** — evaluate which Drupal-side platform is the right host for the automation logic (Rules, ECA, or a custom module on top of [`gitlab_api`](https://www.drupal.org/project/gitlab_api)). 2. **Automation rollou… ### [UX: Install and investigate WordPress 7.x for new AI features](https://git.drupalcode.org/project/ai_initiative/-/work_items/3586595) State: opened | Updated: 2026-08-09 | Author: Aidan Foster (aidanfoster) | Assigned: Aidan Foster (aidanfoster) | Labels: 2026Sprint14, 2026Sprint16, AI Initiative Sprint, ai::inside Description: **Problem/Motivation** WordPress 7.x has shipped a set of new AI features that overlap with areas we're building in the Drupal AI initiative. We should set up an instance and evaluate what they've done, both to learn from their UX decisions and to identify anything worth referencing in our own work. **Proposed resolution** Install a fresh WordPress 7.x instance and investigate its AI features, focusing on: * **Configuration & setup** — evaluate their labels and setup flow as a reference for our own naming/labeling decisions. * **Other features & help documentation** — note any additional A… ### [Create AI Validations Recipe](https://git.drupalcode.org/project/ai_initiative/-/work_items/3585699) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint16, AI Initiative Sprint, ai::inside Description: >>> [!note] Migrated issue Reported by: [breidert](https://www.drupal.org/user/135619) >>> [Tracker] Update Summary: [One-line status update for stakeholders] Check-in Date: MM/DD/YYYY Additional Collaborators: Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Description We want to create a new Drupal AI recipe in a separate project ai_recipe_validations, that provides a turnkey configuration for the AI Validations module. This recipe is intended to be used in the Drupal AI Demo and must be fully compatible with Drupal CMS (Starshot). Instead of creating new… --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- (none) ======================================================================== ## [25] summariseModule:ai_integration_eca:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI Integration - ECA (machine name: ai_integration_eca) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a non-technical executive audience (CEO/leadership level). Focus on: business impact, strategic progress, risks, and what is being delivered. Avoid technical jargon. Do not mention branch names, function names, or API details. Explain what each piece of work means for users or the project's goals. Keep risk language proportionate to the stage of the software. For alpha or beta modules, unassigned bugs or open issues are normal and expected — do not describe them as 'reputational risks' or use alarmist framing. Reserve strong risk language for issues that are genuinely critical or blocking a stable release. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: project update bot (Project-Update-Bot)". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

                                        AI Integration - ECA

                                        then use

                                        ,

                                        ,

                                          /
                                        • , and as needed. Output only the HTML fragment with no surrounding , , or
                                          tags. After the project summary prose, add a single subsection titled "

                                          How can I help on this project?

                                          " aimed at a non-technical executive. Suggest 2-3 concrete, high-level ways a leader could support or unblock progress (e.g. resourcing, stakeholder alignment, decision-making, funding, advocacy). Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, verify it against the issue data. Do not suggest actions that are already in progress or covered by an existing MR — for example, do not suggest that work needs to be started if an issue already has a Related MR. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Automated Drupal 12 compatibility fixes for ai_integration_eca 1.0.x-dev](https://git.drupalcode.org/project/ai_integration_eca/-/work_items/3585018) State: opened | Updated: 2026-08-09 | Author: project update bot (Project-Update-Bot) | Assigned: unassigned | Labels: category::task, priority::minor, state::accepted Description: ## Problem/Motivation This is an automated issue to help make this module compatible with Drupal 12. Changes will periodically be added to this issue that remove deprecated API uses. The changes are posted by the [Project Update Bot](https://www.drupal.org/u/project-update-bot) official user account. This account will not receive any issue credit contributions. To stop the bot from posting further updates, post a comment containing `/ProjectUpdateBot:ignore` anywhere in its body. The bot will then leave this issue alone without it needing to be closed. ## Proposed resolution A merge reque… --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/ai_integration_eca/-/merge_requests/13) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 478 diff lines Description: Relates to #3585018. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-916232. --- COMMITS (24h) --- (none) ======================================================================== ## [26] summariseModule:ai_agents_test:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI Agents Test (machine name: ai_agents_test) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a non-technical executive audience (CEO/leadership level). Focus on: business impact, strategic progress, risks, and what is being delivered. Avoid technical jargon. Do not mention branch names, function names, or API details. Explain what each piece of work means for users or the project's goals. Keep risk language proportionate to the stage of the software. For alpha or beta modules, unassigned bugs or open issues are normal and expected — do not describe them as 'reputational risks' or use alarmist framing. Reserve strong risk language for issues that are genuinely critical or blocking a stable release. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. Do not name any individual people in this section. No one was active enough this period to list. Format your response as an HTML fragment. Start with

                                          AI Agents Test

                                          then use

                                          ,

                                          ,

                                            /
                                          • , and as needed. Output only the HTML fragment with no surrounding , , or
                                            tags. After the project summary prose, add a single subsection titled "

                                            How can I help on this project?

                                            " aimed at a non-technical executive. Suggest 2-3 concrete, high-level ways a leader could support or unblock progress (e.g. resourcing, stakeholder alignment, decision-making, funding, advocacy). Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, verify it against the issue data. Do not suggest actions that are already in progress or covered by an existing MR — for example, do not suggest that work needs to be started if an issue already has a Related MR. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Run more than one test group in Bulk - Test Collections?](https://git.drupalcode.org/project/ai_agents_test/-/work_items/3541324) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [yautja_cetanu](https://www.drupal.org/user/626050) Related to !11 >>> Problem/Motivation When doing automated tests or just trying different models and not using Tests to help with prompt engineering its good to just fire off all the same tests you want and get the overall results. Steps to reproduce Proposed resolution Maybe make views bulk operation style UI so you can click a checkbox next to the test groups you want to run and also run all. Or we could have a Tag on test groups and run all of a specific tag? Maybe this is better if we are goin… --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- (none) ======================================================================== ## [27] summariseModule:gemini_provider:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Gemini Provider (machine name: gemini_provider) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a non-technical executive audience (CEO/leadership level). Focus on: business impact, strategic progress, risks, and what is being delivered. Avoid technical jargon. Do not mention branch names, function names, or API details. Explain what each piece of work means for users or the project's goals. Keep risk language proportionate to the stage of the software. For alpha or beta modules, unassigned bugs or open issues are normal and expected — do not describe them as 'reputational risks' or use alarmist framing. Reserve strong risk language for issues that are genuinely critical or blocking a stable release. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. Do not name any individual people in this section. No one was active enough this period to list. Format your response as an HTML fragment. Start with

                                            Gemini Provider

                                            then use

                                            ,

                                            ,

                                              /
                                            • , and as needed. Output only the HTML fragment with no surrounding , , or
                                              tags. After the project summary prose, add a single subsection titled "

                                              How can I help on this project?

                                              " aimed at a non-technical executive. Suggest 2-3 concrete, high-level ways a leader could support or unblock progress (e.g. resourcing, stakeholder alignment, decision-making, funding, advocacy). Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, verify it against the issue data. Do not suggest actions that are already in progress or covered by an existing MR — for example, do not suggest that work needs to be started if an issue already has a Related MR. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Image Embeddings](https://git.drupalcode.org/project/gemini_provider/-/work_items/3588392) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !35 >>> [Tracker] Update Summary: [One-line status update for stakeholders] Check-in Date: MM/DD/YYYY Additional Collaborators: Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Gemini is one of the only providers that has file embeddings, outside of AWS Titan. This means that you can index and search using an image and image likeness. Currently the embedding solution only allows for text, we should add at least images here (and think … ### [Implement getSupportedCapabilities method in Provider class](https://git.drupalcode.org/project/gemini_provider/-/work_items/3589184) State: opened | Updated: 2026-08-09 | Author: Artem Dmitriiev (a.dmitriiev) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: The `AiProviderInterface` has method ```php /** * Returns the supported capabilities for this provider. * * @return array * List of supported capabilities. */ public function getSupportedCapabilities(): array; ``` This method exposes the capabilities of the provider. The base class implements this method, but obviously it returns empty array as each instance of the plugin has its own values. In this issue https://git.drupalcode.org/project/ai/-/work_items/3586425 the check of capabilities will be added. As Gemini provider at the moment doesn't state that it is capable … ### [Add support for batch embeddings](https://git.drupalcode.org/project/gemini_provider/-/work_items/3589183) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: "state::needsReview" It was decided on the naming. I have updated MR and also adjusted CI to load the needed branch of AI Core, 2026Sprint14, 2026Sprint15, 2026Sprint16 Description: >>> [!note] Migrated issue Reported by: [a.dmitriiev](https://www.drupal.org/user/3235287) Related to !37 >>> [Tracker] Update Summary: [One-line status update for stakeholders] Check-in Date: MM/DD/YYYY Additional Collaborators: Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation As a follow up to this issue https://git.drupalcode.org/project/ai/-/work_items/3568648 it would be nice to add support of batch embeddings as Gemini models can do that. Proposed resolution Use method batchEmbedContents from Gemini client when EmbeddingsInput conta… --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- (none) ======================================================================== ## [28] summariseModule:mcp:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Model Context Protocol (machine name: mcp) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a non-technical executive audience (CEO/leadership level). Focus on: business impact, strategic progress, risks, and what is being delivered. Avoid technical jargon. Do not mention branch names, function names, or API details. Explain what each piece of work means for users or the project's goals. Keep risk language proportionate to the stage of the software. For alpha or beta modules, unassigned bugs or open issues are normal and expected — do not describe them as 'reputational risks' or use alarmist framing. Reserve strong risk language for issues that are genuinely critical or blocking a stable release. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: Shubham Goel (shubhamgoel)". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

                                              Model Context Protocol

                                              then use

                                              ,

                                              ,

                                                /
                                              • , and as needed. Output only the HTML fragment with no surrounding , , or
                                                tags. After the project summary prose, add a single subsection titled "

                                                How can I help on this project?

                                                " aimed at a non-technical executive. Suggest 2-3 concrete, high-level ways a leader could support or unblock progress (e.g. resourcing, stakeholder alignment, decision-making, funding, advocacy). Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, verify it against the issue data. Do not suggest actions that are already in progress or covered by an existing MR — for example, do not suggest that work needs to be started if an issue already has a Related MR. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). (none) --- MERGE REQUESTS (24h) --- ### [#3569845: Add Oauth Scope Validation](https://git.drupalcode.org/project/mcp/-/merge_requests/44) State: opened | Author: Shubham Goel (shubhamgoel) | Branch: 3569845-add-oauth-scope | 865 diff lines Description: Closes #3569845 --- COMMITS (24h) --- (none) ======================================================================== ## [29] summariseModule:ai_agents:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI Agents (machine name: ai_agents) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a non-technical executive audience (CEO/leadership level). Focus on: business impact, strategic progress, risks, and what is being delivered. Avoid technical jargon. Do not mention branch names, function names, or API details. Explain what each piece of work means for users or the project's goals. Keep risk language proportionate to the stage of the software. For alpha or beta modules, unassigned bugs or open issues are normal and expected — do not describe them as 'reputational risks' or use alarmist framing. Reserve strong risk language for issues that are genuinely critical or blocking a stable release. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: project update bot (Project-Update-Bot)". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

                                                AI Agents

                                                then use

                                                ,

                                                ,

                                                  /
                                                • , and as needed. Output only the HTML fragment with no surrounding , , or
                                                  tags. After the project summary prose, add a single subsection titled "

                                                  How can I help on this project?

                                                  " aimed at a non-technical executive. Suggest 2-3 concrete, high-level ways a leader could support or unblock progress (e.g. resourcing, stakeholder alignment, decision-making, funding, advocacy). Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, verify it against the issue data. Do not suggest actions that are already in progress or covered by an existing MR — for example, do not suggest that work needs to be started if an issue already has a Related MR. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Automated Drupal 12 compatibility fixes for ai_agents 1.4.x-dev](https://git.drupalcode.org/project/ai_agents/-/work_items/3586038) State: opened | Updated: 2026-08-09 | Author: project update bot (Project-Update-Bot) | Assigned: unassigned | Labels: category::task, priority::normal, state::accepted Description: ## Problem/Motivation This is an automated issue to help make this module compatible with Drupal 12. Changes will periodically be added to this issue that remove deprecated API uses. The changes are posted by the [Project Update Bot](https://www.drupal.org/u/project-update-bot) official user account. This account will not receive any issue credit contributions. To stop the bot from posting further updates, post a comment containing `/ProjectUpdateBot:ignore` anywhere in its body. The bot will then leave this issue alone without it needing to be closed. ## Proposed resolution A merge reque… ### [Add limits on how often a tool can run](https://git.drupalcode.org/project/ai_agents/-/work_items/3547995) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !224 >>> Problem/Motivation Right now we have to tell the system prompt how often it is allowed to use a specific tool. But there should also be a determenistic way, where if the tool gets stuck in a loop or searches to no awail in a RAG database for instance, we need to be able to programatically say how many times a tool can run. Proposed resolution Add a form value of how many times a tool can run. Add a form for setting the error message when this happens. If the tool has run tha… ### [Let an agent use a role when running a tool](https://git.drupalcode.org/project/ai_agents/-/work_items/3518167) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !87 >>> Problem/Motivation Currently the modus operandi is that the permissions checks that happens in tools, happens on the session that is running it. In AI Agents Explorer or the AI Assistants API, this means the user that triggers the query. There are however cases where agents should be completely autonomous or where they are triggered in queues/cron jobs, where there is no sessions attached. In those cases it should be possible for the person that sets up the agent to be able to… ### [[DISCUSS] Make it possible to create tool instances](https://git.drupalcode.org/project/ai_agents/-/work_items/3552038) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !232 >>> Problem/Motivation Currently you can only use one tool per agent. This is restrictive with tools that are fairly generic. It would be nice if we could create tool instances. Also right now the tool configuration is a little bit over the place and doesn't have a schema. We should add this at the same time as well. [DISCUSS] This is part of a wider discussion, is this linked to composible issues? Is this the right way of doing it? Proposed resolution * Add so you can add tools … ### [Allow agents to have permissions, user or a role](https://git.drupalcode.org/project/ai_agents/-/work_items/3586019) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: scott falconer (scottfalconer) | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) >>> Problem/Motivation There are two problems right now in terms of agents and roles/permissions: 1. If we use only the end-users permissions, the agent itself will have the same permissions, and wide generic tools that are not constrained, might be used as attack vectors via prompt injection. 2. When autonomous agents runs in cron, ECA or something else, they run as an anonymous user, meaning that they might not be able to solve what they want to solve, because they don't have enough permissions… ### [AI Agent entity form should reject machine names that collide with existing code-plugin IDs](https://git.drupalcode.org/project/ai_agents/-/work_items/3586026) State: opened | Updated: 2026-08-09 | Author: Ahmad Khalil (ahmad-khalil-imagex) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: Project: AI Agents\ Component: Code\ Version: 1.4.x\ Issue type: Bug **Problem/Motivation** AiAgentManager merges two types of plugin definitions under a single ID namespace: 1. Code-defined AiAgent plugins discovered via parent::findDefinitions(). 2. ai_agent config entities, merged in by AiAgentManager::findDefinitions() at src/PluginManager/AiAgentManager.php:196. When an admin saves an ai_agent config entity with a machine name that matches an existing code-plugin ID, two failure modes occur: 1. The config entity is silently dropped from plugin discovery — the merge in findDefinitions… ### [Make it possible to restrict the order of tools during agent executions](https://git.drupalcode.org/project/ai_agents/-/work_items/3560681) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint16, AI Initiative Sprint, ai::inside Description: >>> [!note] Migrated issue Reported by: [shashikanth171](https://www.drupal.org/user/3516867) Related to !252 >>> Problem/Motivation AI Agent can sometimes execute tools in an order that doesn't make any sense. We can avoid this by improving the prompt template, making it more verbose with trial and error. Need to somehow allow configuration of each tool, to set which tool should be run prior to it. We can also expand it by including conditions like should be executed 1. only once, 2. first, 3. last etc. Depending on the tool and use case, configuring the agent with such restrictions will… ### [Use the `ai_json_schema` editor for the AI Agent structured-output schema field](https://git.drupalcode.org/project/ai_agents/-/work_items/3586042) State: opened | Updated: 2026-08-09 | Author: Ahmad Khader (Ahmad-Khader) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint16, AI Initiative Sprint, ai::inside Description: ## Description The AI Agent form renders the **structured output** JSON schema as a plain `textarea` (`AiAgentForm::buildFormMetadata()`, `$form['prompt_detail']['structured_output_detail']['structured_output_schema']`). That makes a schema cumbersome to add (no validation or editor affordances, easy to ship malformed JSON) and hard to read once saved (a wall of escaped JSON). Switch it to the AI module's dedicated `'#type' => 'ai_json_schema'` element (`Drupal\ai\Element\AiJsonSchema`), so adding a schema uses a purpose-built CodeMirror editor (syntax highlighting, JSON linting) and a saved… ### [feat: Per-tool approval mode (pre-approved / approve-once / always) with loop pause-resume](https://git.drupalcode.org/project/ai_agents/-/work_items/3586020) State: opened | Updated: 2026-08-09 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: ## Problem / motivation Agents currently invoke tools without a built-in approval gate. For destructive or sensitive tools (writing content, sending email, calling external APIs, running shell commands, etc.) this is risky — the agent can act before a human has a chance to review. Tools like [Claude Code](https://docs.claude.com/en/docs/claude-code) and [OpenAI Codex CLI](https://github.com/openai/codex) solve this by gating each tool call (in their case, each shell command) behind a per-tool approval policy. The user can mark a tool as always-allowed, approve-once-per-session, or always-pro… ### [Allow callers to supply additional tags for the chat calls made by AiAgentEntityWrapper](https://git.drupalcode.org/project/ai_agents/-/work_items/3586055) State: opened | Updated: 2026-08-09 | Author: Abhisek Mazumdar (abhisekmazumdar) | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: ## Problem/Motivation Modules that drive an agent programmatically have no way to tag the chat calls the agent makes, which breaks `ai_logging` correlation for anything beyond "the whole run". `AiAgentEntityWrapper` builds a fixed tag set right before each provider call (`src/PluginBase/AiAgentEntityWrapper.php`, currently around line 536): ```php $tags = [ 'ai_agents', 'ai_agents_' . $this->aiAgent->id(), 'ai_agents_prompt_' . $this->aiAgent->id(), ]; if ($this->runnerId) { $tags[] = 'ai_agents_runner_' . $this->runnerId; } ``` There is no setter, constructor argument, or event th… ### [Research Scratchboards](https://git.drupalcode.org/project/ai_agents/-/work_items/3576571) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: Ahmad Khader (Ahmad-Khader) | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !247 >>> Problem/Motivation One big problem we have right now is to move context between agents. We have Artifact Storage that is a way of forwaring tool output into another tools input as an variable. We also have the possibility to Return Directly with a tool being called. However for multi agent setups, we have the issue that a child agent might need to write out summarized tokens to pass onto another agent, or the return directly from the tool is just too much context for what is … ### [Use streamed chat for agents](https://git.drupalcode.org/project/ai_agents/-/work_items/3538174) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: Sergiu Nagailic (Nikro) | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !165 >>> Problem/Motivation We are making streamed chat possible in #3528549: Allow tool calling in streamed chat. This should make it possible to use it with agents. Steps to reproduce Proposed resolution Implement a solution based on #3528549: Allow tool calling in streamed chat Remaining tasks User interface changes API changes Data model changes ### [Give a parent agent possibility to forward request as is](https://git.drupalcode.org/project/ai_agents/-/work_items/3550098) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) >>> Problem/Motivation Many time a user is actually asking an orchestration agent just one instruction for one specific agent. Depending on how well the prompt is, there might be loss of information when this is forwarded to the subagent. If the parent knows that it should just forward the request as is, then it should be able to give this as a token instead. This helps both with consistency, but also costs and speed, since it will just output one token. Proposed resolution Create a token that th… ### [Create implementation of ShortTermMemory](https://git.drupalcode.org/project/ai_agents/-/work_items/3546411) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !183 >>> Problem/Motivation Short term memory is now available here: #3528730: Create ShortTermMemoryPlugin We should add an integration with it. Proposed resolution Add a parameter to the agent config to save the short term memory config. Add a subform integration for saving the configuration, while editing the AI Agent. Assume no ShortTermMemory by default. Trigger ShortTermMemory after the request event. --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/ai_agents/-/merge_requests/282) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 1497 diff lines Description: Relates to #3586038. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-916232. --- COMMITS (24h) --- (none) ======================================================================== ## [30] summariseModule:tool:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Tool API (machine name: tool) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a non-technical executive audience (CEO/leadership level). Focus on: business impact, strategic progress, risks, and what is being delivered. Avoid technical jargon. Do not mention branch names, function names, or API details. Explain what each piece of work means for users or the project's goals. Keep risk language proportionate to the stage of the software. For alpha or beta modules, unassigned bugs or open issues are normal and expected — do not describe them as 'reputational risks' or use alarmist framing. Reserve strong risk language for issues that are genuinely critical or blocking a stable release. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: Alex Urevick-Ackelsberg (alexua), Marcus Johansson (Marcus_Johansson)". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

                                                  Tool API

                                                  then use

                                                  ,

                                                  ,

                                                    /
                                                  • , and as needed. Output only the HTML fragment with no surrounding , , or
                                                    tags. After the project summary prose, add a single subsection titled "

                                                    How can I help on this project?

                                                    " aimed at a non-technical executive. Suggest 2-3 concrete, high-level ways a leader could support or unblock progress (e.g. resourcing, stakeholder alignment, decision-making, funding, advocacy). Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, verify it against the issue data. Do not suggest actions that are already in progress or covered by an existing MR — for example, do not suggest that work needs to be started if an issue already has a Related MR. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). (none) --- MERGE REQUESTS (24h) --- ### [fix: #3582961 fail closed when tool input is invalid or missing](https://git.drupalcode.org/project/tool/-/merge_requests/113) State: opened | Author: Alex Urevick-Ackelsberg (alexua) | Branch: 3582961-access-invalid-input | 127 diff lines Description: Closes #3582961 ## Summary - catch `InvalidArgumentException` while `ToolBase::access()` obtains executable input values; - return `FALSE` for the boolean form and a generic forbidden result for the object form; - make the input-dependent denial uncacheable and avoid exposing raw validation details; - align the implementation's `$return_as_object` type with `ToolInterface`; - align the AI connector's missing-input regression test with the new access-denied path while retaining its repair-oriented input schema. ## Verification - `php -l src/Tool/ToolBase.php` - `php -l tests/src/Kernel/Tool… ### [Resolve "Create a skill for generating Tool plugins (best practices, how-to, placement)"](https://git.drupalcode.org/project/tool/-/merge_requests/93) State: opened | Author: Marcus Johansson (Marcus_Johansson) | Branch: 3582945-create-a-skill-for-generating-tool-plugins-best-practices-how-to-placement | 1548 diff lines Description: Closes #3582945 ### [fix: #3582960 validate every multiple input item](https://git.drupalcode.org/project/tool/-/merge_requests/112) State: opened | Author: Alex Urevick-Ackelsberg (alexua) | Branch: 3582960-validate-all-multiple-inputs | 137 diff lines Description: Closes #3582960 ## Summary - validate every item in a multiple input instead of returning after the first item; - preserve the emitted violations so multiple invalid values are all reported; - pin the existing empty-array contract: `required` means the input is present, while minimum cardinality requires an explicit `Count` constraint. ## Verification - `php -l src/TypedInputsTrait.php` - `php -l tests/src/Kernel/Tool/TypedInputsValidationTest.php` - `composer validate --no-check-publish` - `git diff --check` The focused Kernel test is included but was not executed locally because this is… --- COMMITS (24h) --- (none) ======================================================================== ## [31] summariseModule:canvas:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Drupal Canvas (machine name: canvas) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a non-technical executive audience (CEO/leadership level). Focus on: business impact, strategic progress, risks, and what is being delivered. Avoid technical jargon. Do not mention branch names, function names, or API details. Explain what each piece of work means for users or the project's goals. Keep risk language proportionate to the stage of the software. For alpha or beta modules, unassigned bugs or open issues are normal and expected — do not describe them as 'reputational risks' or use alarmist framing. Reserve strong risk language for issues that are genuinely critical or blocking a stable release. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Fons Vandamme (f0ns), Rajab Natshah (RajabNatshah), Tim Plunkett (tim.plunkett)". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

                                                    Drupal Canvas

                                                    then use

                                                    ,

                                                    ,

                                                      /
                                                    • , and as needed. Output only the HTML fragment with no surrounding , , or
                                                      tags. After the project summary prose, add a single subsection titled "

                                                      How can I help on this project?

                                                      " aimed at a non-technical executive. Suggest 2-3 concrete, high-level ways a leader could support or unblock progress (e.g. resourcing, stakeholder alignment, decision-making, funding, advocacy). Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, verify it against the issue data. Do not suggest actions that are already in progress or covered by an existing MR — for example, do not suggest that work needs to be started if an issue already has a Related MR. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Dependency Dashboard](https://git.drupalcode.org/project/canvas/-/work_items/3591657) State: opened | Updated: 2026-08-10 | Author: **** (project_19391_bot_cb443e60680723bba08a5351bf595251) | Assigned: unassigned | Labels: projectManagement Description: This issue lists Renovate updates and detected dependencies. Read the [Dependency Dashboard](https://docs.renovatebot.com/key-concepts/dashboard/) docs to learn more. ## Repository Problems Renovate tried to run on this repository, but found these problems. - ⚠️ WARN: Failed to set branch status - ⚠️ WARN: No github.com token has been configured. Skipping release notes retrieval - ⚠️ WARN: Rate limit exceeded for api.github.com, as no hostRules set for this host. Please set a GITHUB_COM_TOKEN - ⚠️ WARN: No tool releases found. ## Deprecations / Replacements > ⚠️ **Warning** > The foll… ### [PHPStan failing on global $argv usage](https://git.drupalcode.org/project/canvas/-/work_items/3591931) State: opened | Updated: 2026-08-09 | Author: Tim Plunkett (tim.plunkett) | Assigned: unassigned | Labels: Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1485 [fix: #3591931 Do not rely on $argv being a global](https://git.drupalcode.org/project/canvas/-/merge_requests/1485) | State: opened | Author: Tim Plunkett (tim.plunkett), 16 diff lines Description: A few recent pipelines are failing with ``` ------ ----------------------------------------------------------------- Line tests/src/Playwright/scripts/exclude-config-schema-checking.php ------ ----------------------------------------------------------------- 43 Variable $argv might not be defined. 🪪 variable.undefined ------ ----------------------------------------------------------------- ``` But it's only failing sometimes, and I can't find out why. Google says that $argv can't be trusted o… ### [Allow per-node override of Content Template via checkbox in node selector](https://git.drupalcode.org/project/canvas/-/work_items/3567225) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: Lauri Timmanee (lauriii) | Labels: Needs product manager review, category::feature, priority::normal, state::needsWork Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !948 [task: #3567225 Make the component tree loader extensible](https://git.drupalcode.org/project/canvas/-/merge_requests/948) | State: opened | Author: Rajab Natshah (RajabNatshah), 29 diff lines Description: >>> [!note] Migrated issue Reported by: [belkin13](https://www.drupal.org/user/2369688) Related to !948 >>> Overview Content Templates in Drupal Canvas are currently applied at the content type + view mode level. This is great for consistent designs across similar content, but editors often need to create highly custom, one-off pages (e.g. special landing pages, unique "About" or promo pages) that belong to an existing content type like "Page" or "Landing page", without affecting every other node of that type. Right now, achieving this requires workarounds: Creating a dedicated content t… ### [Canvas AI: Cover the error path that clears stored agent state](https://git.drupalcode.org/project/canvas/-/work_items/3591927) State: opened | Updated: 2026-08-09 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai, ai::inside Description: ## Summary When an agent run throws, the dev controller deletes the stored agent state for that turn and returns an error response. Nothing asserts either half. Part of https://git.drupalcode.org/project/canvas/-/work_items/3591777. ## What the test should validate - The stored agent state for the turn is deleted. - The response reports failure and does not ask for another hop. ## Current behavior `CanvasDevAiBuilder::render()` wraps `determineSolvability()` in a try/catch. The catch deletes the stored agent state for the turn and returns `status: false` with `should_continue: false`. No … ### [Canvas AI: Add Playwright coverage for the component agent hop loop](https://git.drupalcode.org/project/canvas/-/work_items/3591926) State: opened | Updated: 2026-08-09 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai, ai::inside Description: ## Summary The dev chat runs a turn as several requests — the agent pauses after each tool decision and the browser re-POSTs until `should_continue` is false. Nothing covers that loop in a browser. Part of https://git.drupalcode.org/project/canvas/-/work_items/3591777. ## What the test should validate - The user's message is rendered in the chat UI. - The progress message is rendered. - The progress loader appears while the turn is running. - The turn keeps hopping until a response reports `should_continue: false`, and stops there. - The final message returned by the controller is rendered … ### [Canvas AI: Add a Drupal Canvas Agent that answers general questions](https://git.drupalcode.org/project/canvas/-/work_items/3591924) State: opened | Updated: 2026-08-09 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai, ai::inside Description: ## Summary Add an `ai_agent` config entity to `canvas_dev_ai`, labelled **Drupal Canvas Agent**, that answers general questions about Canvas from its system prompt and uses no tools. It is the main agent of the dev chat. Part of https://git.drupalcode.org/project/canvas/-/work_items/3591777. ## Why Every agent in the dev chat performs work. A user who asks what Canvas can do, or which Tool to pick, has nothing to talk to — the turn goes to whichever working agent is configured. This agent is the chat's entry point; Tools are what the user switches to for a task. ## Proposed Create the age… ### [Canvas AI: Research how a user can cancel a running chat turn](https://git.drupalcode.org/project/canvas/-/work_items/3591923) State: opened | Updated: 2026-08-09 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai, ai::inside Description: ## Summary Research issue — no implementation. A user cannot cancel a running turn in the dev chat, and the approach is not obvious because deep-chat offers no stop control on the request path the wizard uses. Decide the route here; implementation lands in a follow-up. Part of https://git.drupalcode.org/project/canvas/-/work_items/3591777. ## Current behavior - **deep-chat renders no stop control on our path.** `changeToStopIcon()` is wired as `streamHandlers.onOpen`, and only deep-chat's `stream()` path invokes `streamHandlers`. `AiWizardDev.tsx` passes no `stream` prop, so the submit butt… ### [Canvas AI: Add end-to-end kernel coverage for the dev page builder agent](https://git.drupalcode.org/project/canvas/-/work_items/3591922) State: opened | Updated: 2026-08-09 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai, ai::inside Description: ## Summary Follow-up to https://git.drupalcode.org/project/canvas/-/work_items/3591921. Cover `canvas_dev_ai_page_builder_agent` turns driven through the dev AI controller, the way `CanvasComponentAgentEndToEndTest` covers the component agent. Part of https://git.drupalcode.org/project/canvas/-/work_items/3591777. ## Current behavior 3591921 lands the agent with a single two-hop placement turn as its acceptance proof. Nothing covers a multi-row build, an edit turn, or a page-value write. ## Proposed Add `CanvasDevPageBuilderAgentEndToEndTest` beside `modules/canvas_ai/tests/src/Kernel/Age… ### [Canvas AI: Add a dev page builder agent and wire the placement tools](https://git.drupalcode.org/project/canvas/-/work_items/3591921) State: opened | Updated: 2026-08-09 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai, ai::inside Description: ## Summary Add an `ai_agent` config entity to `canvas_dev_ai` that builds a page by placing one component row per hop, and wire the four placement tools that currently ship inert. Part of https://git.drupalcode.org/project/canvas/-/work_items/3591777. ## Current behavior `canvas_dev_ai` runs one agent per chat turn as a client-side hop loop, and only `canvas_component_agent` is wired to it — so the dev flow can build JS code components but cannot build a page. `canvas_ai:place_components`, `canvas_ai:edit_components`, `canvas_ai:set_page_value` and `canvas_ai:get_component_details` are all … ### [Canvas AI: Add a catalog-only parameter to the get_component_context tool](https://git.drupalcode.org/project/canvas/-/work_items/3591920) State: opened | Updated: 2026-08-09 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai, ai::inside Description: ## Summary `canvas_ai:get_component_context` always returns every component with all its props and slots. Add a parameter that returns only the id, name and description, reusing the helper method that already produces it. Part of https://git.drupalcode.org/project/canvas/-/work_items/3591777. ## Current behavior `GetComponentContext::execute()` returns `CanvasAiPageBuilderHelper::getComponentContextForAi()`, and the tool declares no context definitions. `CanvasAiComponentContextHelper::getComponentCatalog()` already returns the lean listing — `name` and `description` keyed by component id —… ### [Canvas AI: Run the agent selected in configuration instead of a hardcoded one](https://git.drupalcode.org/project/canvas/-/work_items/3591919) State: opened | Updated: 2026-08-09 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai, ai::inside Description: ## Summary `canvas_dev_ai` stores `main_agent` and `tools` in `canvas_dev_ai.settings`, set at `/admin/config/ai/canvas-ai-agent-selection`. Nothing reads them. Make the controller run the configured agent. Part of https://git.drupalcode.org/project/canvas/-/work_items/3591777. ## Current behavior `CanvasDevAiBuilder.php:111` instantiates `canvas_component_agent` as a literal, so the form has no effect. ## Proposed - Every hop sends the target agent ID. Validate it against `main_agent` and `tools`; anything else is an error response. - When no target agent is sent, run `main_agent`. - Shi… ### [Canvas AI: Expose Props of Blocks to the Agent](https://git.drupalcode.org/project/canvas/-/work_items/3569120) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint16, AI Initiative, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [akhil babu](https://www.drupal.org/user/3632866) Related to !498 >>> Overview Currently CanvasAiPageBuilderHelper::getAllComponentsKeyedBySource() does this <?php      if ($source === SingleDirectoryComponent::SOURCE_PLUGIN_ID) {        $this->processSdc($component, $sdc_definitions, $output);      }      elseif ($source === JsComponent::SOURCE_PLUGIN_ID) {        $this->processCodeComponents($co… ### [Canvas AI: Client-side orchestration loop for Canvas AI(POC)](https://git.drupalcode.org/project/canvas/-/work_items/3591615) State: opened | Updated: 2026-08-09 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint16, AI Initiative Sprint, ai Description: ## Problem Every Canvas AI request is a single synchronous PHP call. The full chain — orchestrator → sub-agent → tool calls → validation — must complete before the server responds. This causes two concrete failures: - **Timeouts on hosted platforms (e.g. DrupalForge).** A full page build exceeds the request time limit. The user gets nothing. - **Full regeneration on any error.** If one component in a large response fails validation, the entire response is regenerated — wasting time and tokens. There is no streaming and no partial feedback. ## How `ai_chatbot` already solves this The `ai_c… ### [Canvas AI: Add Tools dropdown to chat UI](https://git.drupalcode.org/project/canvas/-/work_items/3591856) State: opened | Updated: 2026-08-09 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 1.x-dev, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: ## Background — how Canvas AI works today The Canvas AI chat is an **orchestrator system**. Every message goes first to a single orchestrator agent. The orchestrator reads the message, infers the intent, and launches the matching sub-agent: - "Build me a landing page" → orchestrator → page-builder sub-agent - "Create a React component" → orchestrator → component sub-agent - "Write a title / meta description" → orchestrator → the relevant sub-agent The routing is implicit — the user never chooses which sub-agent runs; the orchestrator decides on every turn. Roadmap: https://git.drupalcode.o… ### [Canvas AI: page builder discards the whole build when the LLM names a region that does not exist](https://git.drupalcode.org/project/canvas/-/work_items/3591876) State: opened | Updated: 2026-08-09 | Author: Rajab Natshah (RajabNatshah) | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai Description: ## Problem/Motivation `CanvasAiPageBuilderHelper` throws when the AI names a target region that is not present in the current layout: ``` Region "%s" not found in layout ``` The LLM commonly guesses a generic region name that does not exist on the entity's actual layout (for example `content` capitalized, `0`, or `header` on a single-region layout). The exception aborts the entire page-build operation, so the whole AI response is discarded instead of degrading gracefully into a usable page. ## Steps to reproduce 1. Use the Canvas AI page builder to add components on a page whose layout do… --- MERGE REQUESTS (24h) --- ### [fix(deps): update npm minor and patch](https://git.drupalcode.org/project/canvas/-/merge_requests/1238) State: opened | Author: **** (project_19391_bot_cb443e60680723bba08a5351bf595251) | Branch: renovate/npm-minor-and-patch | 55 diff lines Description: This MR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@axe-core/playwright](https://github.com/dequelabs/axe-core-npm) | [`4.11.1` → `4.12.1`](https://renovatebot.com/diffs/npm/@axe-core%2fplaywright/4.11.1/4.12.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@axe-core%2fplaywright/4.12.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@axe-core%2fplaywright/4.11.1/4.12.1?slim=true) | | [@babel/parser](… ### [bug: #3591839 Preserve the query string when stripping the language prefix; a...](https://git.drupalcode.org/project/canvas/-/merge_requests/1387) State: opened | Author: Fons Vandamme (f0ns) | Branch: 3591839-prefix-strip-redirect-misses-default-language-prefixes-and-is-overridden-by-destination | 193 diff lines Description: Fixes two gaps in the language-prefix redirect from #3591585 (`CanvasRouteOptionsEventSubscriber::redirectCanvasToDefaultLanguage()`): 1. A prefix configured for the default language was never stripped, because the redirect only ran when the current language differed from the default. The editor then received a prefixed path and rendered a gray screen. 2. The redirect dropped the query string, and a `destination` parameter (present on `/admin/content/pages` Edit links) made `RedirectResponseSubscriber` override the redirect target, returning the user to the overview. The redirect now strips … --- COMMITS (24h) --- (none) ======================================================================== ## [32] summariseModule:ai_context:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Context Control Center (CCC) (machine name: ai_context) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a non-technical executive audience (CEO/leadership level). Focus on: business impact, strategic progress, risks, and what is being delivered. Avoid technical jargon. Do not mention branch names, function names, or API details. Explain what each piece of work means for users or the project's goals. Keep risk language proportionate to the stage of the software. For alpha or beta modules, unassigned bugs or open issues are normal and expected — do not describe them as 'reputational risks' or use alarmist framing. Reserve strong risk language for issues that are genuinely critical or blocking a stable release. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: Juan Correa (jucs7), Kristen Pol (kepol) [2], Tamas Balog (tbalog) [1]". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

                                                      Context Control Center (CCC)

                                                      then use

                                                      ,

                                                      ,

                                                        /
                                                      • , and as needed. Output only the HTML fragment with no surrounding , , or
                                                        tags. After the project summary prose, add a single subsection titled "

                                                        How can I help on this project?

                                                        " aimed at a non-technical executive. Suggest 2-3 concrete, high-level ways a leader could support or unblock progress (e.g. resourcing, stakeholder alignment, decision-making, funding, advocacy). Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, verify it against the issue data. Do not suggest actions that are already in progress or covered by an existing MR — for example, do not suggest that work needs to be started if an issue already has a Related MR. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Pre-1.0 documentation, trust, and compatibility follow-up to issue 3586363](https://git.drupalcode.org/project/ai_context/-/work_items/3586382) State: closed | Updated: 2026-08-10 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, category::task Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !253 [Issue #3586382: Pre-1.0 documentation, trust, and compatibility follow-up.](https://git.drupalcode.org/project/ai_context/-/merge_requests/253) | State: merged 2026-08-10 | Author: Kristen Pol (kepol), 721 diff lines Description: ## Follow-up to: #3586363+s Follow-up to "Before 1.0" triage in #3586363. Combines documentation, API annotation, security guidance, and release-policy work that should land before 1.0 without adding new functionality. **Scope:** #1, #2, #5, #6, #8 from the Before 1.0 list in #3586363+s. **Non-goals:** selector/diagnostics work (#3, #4, #9 — separate issue), performance benchmarks (#7 — 1.1), usage vs observability decision (#10 — #3567803 / #3586213). ## Problem / motivation _**Note that the following needs to be rechecked before working on this issue as some things may have been fixed.… ### [Remove max_items context limit and rely on the token budget](https://git.drupalcode.org/project/ai_context/-/work_items/3586378) State: opened | Updated: 2026-08-10 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: 2026Sprint16, category::task, priority::major, sprint candidate Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !244 [Issue #3586378: Remove max_items context limit and rely on token budget.](https://git.drupalcode.org/project/ai_context/-/merge_requests/244) | State: opened | Author: Kristen Pol (kepol), 2982 diff lines Description: ## Summary Follow-up to: - #3586337+s The **Max context items to inject** setting (`max_items`) adds UX and DX complexity without providing a meaningful limit on its own. Context items vary widely in size, so a token budget is the more accurate control for how much context can reach an agent prompt. Remove `max_items` from configuration, forms, validation, selection logic, documentation, and tests. After this change, the token budget (`max_tokens`) is the primary module-wide limit on injected context. ## Problem Site builders currently configure two overlapping limits: - **Max context i… ### [Document Purpose field guidance for conditional subcontext selection](https://git.drupalcode.org/project/ai_context/-/work_items/3586390) State: closed | Updated: 2026-08-10 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai::internal, category::task Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !246 [Issue #3586390: Document purpose guidance for conditional subcontext.](https://git.drupalcode.org/project/ai_context/-/merge_requests/246) | State: merged 2026-08-09 | Author: Kristen Pol (kepol), 206 diff lines Description: ## Problem/motivation Follow-up to: - #3586351+s - #3586199+s Real-provider testing showed the current conditional subcontext prompt (parent Content + task + each child’s **ID and Purpose**) is sufficient for most well-authored configurations. Failures were more often caused by weak or overlapping Purpose text than by missing child labels or descriptions. Authors may not realize that **Purpose is the primary signal** the model uses to decide whether a conditional child applies. The field is required, but there is little guidance on writing effective inclusion criteria or avoiding overlap b… ### [[Meta] Prepare CCC for Inside AI Rotterdam demo](https://git.drupalcode.org/project/ai_context/-/work_items/3586386) State: opened | Updated: 2026-08-10 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: 2026Sprint16, AI Initiative Sprint, Rotterdam2026, ai::internal Description: ## Scope Area meta issue for **AI Context**, area 6 of ai_initiative#3586657+. **Lead:** Kristen Pol The Context Control Center (CCC) installs with sensible defaults and holds real site information for the Inside AI university demo, including brand guidance and university writing guidelines used by AI Content Review. Every AI feature on the demo site draws its site context from CCC rather than from feature-specific configuration. ## Demo scenario A visitor to the Demo section is shown where the brand and writing guidelines live, changes one guideline, runs a content review against the sam… ### [Create CCC recipe for Inside Rotterdam demo](https://git.drupalcode.org/project/ai_context/-/work_items/3586385) State: opened | Updated: 2026-08-10 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, Rotterdam2026, ai::inside Description: ## Problem Parent: #3586386+ Primary deliverable for the **AI Context** area of the Inside AI Rotterdam demo ai_initiative#3586657+. The Rotterdam demo needs a CCC recipe that installs with the Drupal AI starter template, ships university-specific context (especially writing guidelines for content review), and wires consumer subscriptions so every AI feature on the site uses CCC instead of its own context configuration. ## Proposed resolution Create a CCC recipe that: 1. Installs `ai_context` with Rotterdam demo defaults. **(TBD, what those are)** 2. Ships university brand and editorial/… ### [Add context item Priority field and use it for selection ordering](https://git.drupalcode.org/project/ai_context/-/work_items/3586376) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, category::feature Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !245 [Issue #3586376: Add context item priority field and selection tie-breakers.](https://git.drupalcode.org/project/ai_context/-/merge_requests/245) | State: opened | Author: Kristen Pol (kepol), 1323 diff lines Description: ## Summary Follow-up to: #3586364+s Context selection currently breaks ties between equally weighted candidates using the item `changed` timestamp. That is opaque to editors and does not reflect editorial intent when multiple items compete for the same slots. Add a **Priority** field on context items and use it consistently when the selector chooses and orders candidates within each selection group. ## Problem When more context items qualify than fit under `max_items` (or `max_global_items`), the selector must decide which items to keep and in what order. Today: - Global, scored, and ma… ### [Rename entity bundle and target entity scope plugins for better DX](https://git.drupalcode.org/project/ai_context/-/work_items/3586276) State: closed | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint12, 2026Sprint13, 2026Sprint14, 2026Sprint15 Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !195 [Issue #3586276: Rename entity bundle and target entity scope plugins for better DX](https://git.drupalcode.org/project/ai_context/-/merge_requests/195) | State: merged 2026-08-09 | Author: Tamas Balog (tbalog), 7456 diff lines Description: ## Problem/solution Follow up to: #3586148+s The naming of the entity bundle and target entity scope plugins is confusing. ## Solution **AiContextScopeEntityBundle** Rename Entity Bundle => Entity Type at a code-level because there are bundleless content entities. Label: Entity Types Description: Apply this context to every entity of a chosen type, for example all Article nodes, every Document media item, or every Canvas page. Choose this when the context is true for the whole type, not a single item. **AiContextScopeTargetEntity** Rename Target Entity => Entity Item because target… ### [Clarify and stabilize the scope plugin extension boundary for 1.0](https://git.drupalcode.org/project/ai_context/-/work_items/3586392) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, category::task Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !249 [Issue #3586392: Clarify and stabilize scope plugin extension boundary for 1.0.](https://git.drupalcode.org/project/ai_context/-/merge_requests/249) | State: opened | Author: Kristen Pol (kepol), 1007 diff lines Description: ## Summary Follow-up to: #3586243+s Before 1.0, lock down what custom scope authors and contrib can safely depend on, without landing the full persistence/orchestration refactor from #3586243+. This issue is documentation and internal seam-setting only: no new public interface methods and no user-visible behavior changes. The current scope plugin API is already broad enough for map-backed custom scopes, but docs and code send mixed signals. The scope manager is marked `@internal` while developer docs show injection patterns; the resolver interface docblock calls itself public while `api-st… ### [Introduce more granular permissions to CCC](https://git.drupalcode.org/project/ai_context/-/work_items/3563036) State: closed | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: category::task, mvp, priority::normal, state::fixed Description: >>> [!note] Migrated issue Reported by: [kristen pol](https://www.drupal.org/user/8389) Related to !15 >>> [Tracker] Update Summary: Introduce more granular permissions to CCC Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Right now, any editor with "administer ai context" can use all of the context features. We want less technical users to be able to use some of the system, while technical users can focus on more complex things. Proposed resolution Add more granular permissions. For now, these are: administer ai context - keep this and … ### [Create graphic to explain how context scope works](https://git.drupalcode.org/project/ai_context/-/work_items/3571104) State: closed | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: 2026Sprint15, AI Initiative Sprint, ai::internal, category::task Description: >>> [!note] Migrated issue Reported by: [kristen pol](https://www.drupal.org/user/8389) >>> [Tracker] Update Summary: [One-line status update for stakeholders] Check-in Date: MM/DD/YYYY Blocked by: [#XXXXXX] (New issues on new lines) Additional Collaborators: @username1, @username2 Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Christoph suggested creating a create graphic to explain how context scope works Proposed resolution Create something that's easy to understand for users Target date or deadline TBD Remaining tasks Create i… ### [Assess possible 1.0 and 1.1 features and UX/DX improvements following TDT questions](https://git.drupalcode.org/project/ai_context/-/work_items/3586363) State: closed | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint15, AI Initiative Sprint, ai::internal, category::plan Description: ## Problem **_Note that we should minimize the changes for 1.0 at this point so identify the most important items, if any, from the "Before 1.0" list. Also, it would be best if they were in 1 or 2 issues rather than a bunch of new issues._** Follow-up to: #3586362+s When answering questions for a TDT post, it presented possible follow-up features and UX/DX improvements. Note that some of these may already have issues. ## Solution Vet the following for possible action and create follow-up and child issues as needed. Note that some of these may already have issues, so check first before cr… ### [Align scope scoring, language service, and contextual selection behavior](https://git.drupalcode.org/project/ai_context/-/work_items/3586388) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, blocker::stable, category::task, priority::major Description: ## Summary **IMPORTANT: If #3586365+s is merged first, this issue's MR needs fixing based on that (and vice versa).** Follow-up to: #3586365 Before 1.0, align scope weight, subscription scoring, UI ordering, language handling, hard contextual filtering, and function-call listing so selection behavior is predictable, consistently documented, and safe for agent use. ### 1. Align scope display order with scoring weight Use the existing plugin weight for both subscription scoring and UI display order. A higher weight means: - Greater influence during subscription scoring - Earlier placemen… ### [Sprint 16 CCC roadmap updates, sprint planning, and issue triage](https://git.drupalcode.org/project/ai_context/-/work_items/3586368) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: 2026Sprint16, AI Initiative Sprint, ai::internal, category::plan Description: ## Problem/Motivation Prioritize backlog items for the sprint to align with roadmap, releases, and project needs. --- ## Proposed resolution Groom sprint issues https://git.drupalcode.org/project/ai_context/-/work_items/views/75 --- ## Target date or deadline 8 August to 21 August 2026 --- ## Remaining tasks - Go through backlog and prioritize - Create new issues as needed - Identify what goes into sprint - Tune mid-sprint as needed - Update roadmap meta as needed --- ## Related issues - [#3567798: [META] CCC MVP 1.0 roadmap](https://www.drupal.org/project/ai_context/issues/35677… ### [Recruit additional CCC beta testers](https://git.drupalcode.org/project/ai_context/-/work_items/3586235) State: closed | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: ai::internal, category::task, priority::major, state::closed Description: ## Problem/motivation Note that Mike Anello (ultimike) is beta testing, but we will try to recruit more after beta3 is created: #3586295+s We want more beta testers. This issue was created for this: #3586234+s ## Solution Promote this in various channels: - ~~Slack~~ - ~~Status Videos~~ - ~~Beta blog posts~~ - LinkedIn - Planet Drupal? ## Tasks - ~~Create issue with resources~~ - ~~Post in the relevant Slack channels (ai, ai-contrib, ai-context, ai-partner-contributors)~~ - Create a dedicate blog post and/or LinkedIn post to promote ### [Update CCC maintainers in README.md](https://git.drupalcode.org/project/ai_context/-/work_items/3586366) State: closed | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint15, AI Initiative Sprint, ai::internal, category::task Description: ## Problem Maintainers list in readme is outdated. ## Solution Update it to reflect current maintainers ### [Drupal 10 does not invoke attribute-based theme and Scheduler hooks](https://git.drupalcode.org/project/ai_context/-/work_items/3586344) State: closed | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: blocker::beta, category::bug, priority::major, state::closed Description: ## Summary Drupal 10 does not discover the attribute-based hook implementations in `AiContextThemeHooks` and `SchedulerHooks`. Drupal 11 discovers methods marked with `#[Hook]` automatically. Drupal 10 requires traditional procedural hook implementations that delegate to explicitly registered services. This was identified while testing #3586338. ## Problems ### Missing theme hooks `AiContextThemeHooks::theme()` is marked with `#[Hook('theme')]`, but Drupal 10 does not invoke it. Consequently, the Drupal 10 theme registry does not contain AI Context theme hooks such as: - `ai_context_ov… ### [Add content type context scope for MVP](https://git.drupalcode.org/project/ai_context/-/work_items/3570934) State: closed | Updated: 2026-08-09 | Author: drupalbot | Assigned: unassigned | Labels: category::feature, priority::major, state::closed, version::v1.0.x-dev Description: >>> [!note] Migrated issue Reported by: [kristen pol](https://www.drupal.org/user/8389) >>> [Tracker] Update Summary: [One-line status update for stakeholders] Check-in Date: MM/DD/YYYY Blocked by: [#XXXXXX] (New issues on new lines) Additional Collaborators: @username1, @username2 Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Parent: #3564706: [META] Context Scope feature Follow-up to: #3568673: Add context scope base code and use case context scope plugin Add content type scope where the user can choose one or more content types to as… ### [[Spike] Complete scope plugin persistence API: manager orchestration, target entity encapsulation, and plugin-driven admin/selection](https://git.drupalcode.org/project/ai_context/-/work_items/3586243) State: closed | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint11, 2026Sprint16, AI Initiative Sprint, ai::internal Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !164 [Issue #3586243: Complete scope plugin API before RC1: persistence, form encapsulation, validation, capability flags, and documented interface sections.](https://git.drupalcode.org/project/ai_context/-/merge_requests/164) | State: closed | Author: Kristen Pol (kepol), 6981 diff lines Description: ## Description _**Note that this needs to be rethought to minimize the impact on 1.0 and figure out what can happen in 1.1 instead.**_ Blocked by: #3586295+s ### Summary The scope plugin API was asymmetric: read and match were abstracted, but write, clear, index, cleanup, form integration, and save-time validation leaked storage details into callers. `AiContextItemForm`, entity presave, `hook_entity_delete()`, and `AiContextScopeIndexService` contained special cases — especially the `target_entities` DER field — that would repeat for every new scope. This issue completes the scope plugin… ### [Review and update CCC permissions before rc1](https://git.drupalcode.org/project/ai_context/-/work_items/3586358) State: closed | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, blocker::stable Description: ## Problem/Motivation Replaces the outdated permissions review: #3574937+s That issue and MR !78 targeted an earlier beta and no longer match the current permission model or scope. Related work already in progress: #3586356+s Permissions still need a focused pass before full QA: #3573716+s Goals for this issue: - Confirm the current permission set is sufficient for 1.0 roles (author, editor, admin, and published-context consumers). - Add only permissions with a clear 1.0 use case. - Avoid a broad redesign or large new own-* permission set in 1.0. Earlier ideas from #3574937 (decide… ### [Document the AI Context role and permission matrix for 1.0](https://git.drupalcode.org/project/ai_context/-/work_items/3586395) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: 2026Sprint16, AI Initiative Sprint, ai::internal, category::task Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !254 [Issue #3586395: Document the AI Context role and permission matrix for 1.0.](https://git.drupalcode.org/project/ai_context/-/merge_requests/254) | State: opened | Author: Kristen Pol (kepol), 300 diff lines Description: ## Problem/Motivation Follow-up to: #3586358+s The current AI Context permission model is sufficient for the 1.0 role patterns, and #3586356+ completed the required access hardening. However, site builders do not yet have a documented role/permission matrix. In particular, the documentation should distinguish: - Published-context consumers using AI features - Context authors managing their own items - Editors managing context across authors - Administrators managing settings, agents, and usage The documentation must also cover editorial workflow transition permissions, which are generate… ### [Automated Drupal 12 compatibility fixes for ai_context 1.0.x-dev](https://git.drupalcode.org/project/ai_context/-/work_items/3586269) State: opened | Updated: 2026-08-09 | Author: project update bot (Project-Update-Bot) | Assigned: unassigned | Labels: category::feature, priority::normal, state::postponed, what::code Description: ## Problem/Motivation This is an automated issue to help make this module compatible with Drupal 12. Changes will periodically be added to this issue that remove deprecated API uses. The changes are posted by the [Project Update Bot](https://www.drupal.org/u/project-update-bot) official user account. This account will not receive any issue credit contributions. To stop the bot from posting further updates, post a comment containing `/ProjectUpdateBot:ignore` anywhere in its body. The bot will then leave this issue alone without it needing to be closed. ## Proposed resolution A merge reque… ### [Resolve `use_default` provider config for conditional subcontext selection](https://git.drupalcode.org/project/ai_context/-/work_items/3586391) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, category::bug Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !247 [Issue #3586391: Resolve use_default provider for conditional subcontext.](https://git.drupalcode.org/project/ai_context/-/merge_requests/247) | State: opened | Author: Kristen Pol (kepol), 787 diff lines Description: ## Problem / motivation Follow-up to: - #3586351+s - #3586207+s During real-provider conditional subcontext testing (#3586351+), conditional children were **silently excluded** even though: - **Enable conditional subcontext AI decisions** was on - Published conditional subcontext items existed - The site had a working chat default at **AI → Settings → Default providers** Root cause: `ai_context` stores settings in `ai_context.settings:provider_config`, but runtime code only reads **`provider`** and **`model`**. It ignores **`use_default`**. Install config ships with: ```yaml provider_co… ### [CCC QA scripts for 1.0 testing](https://git.drupalcode.org/project/ai_context/-/work_items/3586226) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, blocker::stable Description: ## Problem/motivation Need to make sure we're ready for the QA team to do pre-1.0 testing. ## Solution From Bruna Emerich (Zoocha): Documentation covering the functionality, along with a test script (such as the example in this ticket, where an .md file is included), is sufficient for us to carry out testing. If any questions come up, we’ll raise them directly in the channel and tag you. Regarding lead time, it depends on the size of the functionality, but generally one week’s notice is sufficient. If there’s a fixed release date, allowing around 14 days is preferable, as it gives enough … ### [Install `target_entities` field storage when Dynamic Entity Reference is enabled on existing sites](https://git.drupalcode.org/project/ai_context/-/work_items/3586375) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, category::bug Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !251 [Issue #3586375: Install target_entities storage when DER is enabled later.](https://git.drupalcode.org/project/ai_context/-/merge_requests/251) | State: opened | Author: Kristen Pol (kepol), 610 diff lines Description: ## Problem Sites that already have `ai_context` installed can fatal when `dynamic_entity_reference` is enabled (or was enabled without a matching schema update). The context item listing and other entity loads fail with: `Table 'db.ai_context_item__target_entities' doesn't exist` Example stack: `SqlContentEntityStorage->loadFromDedicatedTables()` while `AiContextItemListBuilder->load()` renders `/admin/config/ai/context/items`. ### Root cause `target_entities` is not defined in `AiContextItem::baseFieldDefinitions()`. It is added at runtime via `DynamicEntityReferenceHooks::entityBaseFiel… ### [Test current conditional subcontext selection before changing the prompt](https://git.drupalcode.org/project/ai_context/-/work_items/3586351) State: closed | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, blocker::stable Description: ## Summary _**Note: this is a tricky issue to test.**_ Follow-up to #3586194+. This issue should be completed before #3586199+. ## Problem/motivation #3586199+ proposes adding a richer subcontext index to improve conditional child selection. Since that issue was created, the current implementation has begun sending each candidate child’s ID and Purpose to the AI provider. It is not yet known whether the richer index is still needed. Existing automated tests verify selection mechanics with fixed responses but do not assess real-model relevance decisions. ## Solution The detailed assessme… ### [Review and document context selection ranking factors before 1.0](https://git.drupalcode.org/project/ai_context/-/work_items/3586365) State: closed | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: **Note that I switched this from a discussion issue to a documentation. Discussion has happened. Docs are in the MR.** **IMPORTANT: If #3586388+s is merged first, this issue's MR needs fixing based on that (and vice versa).** ## Summary Before we ship 1.0, we should confirm that the current rules for choosing which context items reach an AI feature are the right set — and whether anything important is missing. This issue is a **discussion**. The goal is shared understanding of what the module does today, in plain language, so product/UX and engineering can decide together whether to add ra… ### [Redesign selection modes as a nested Minimal / Relevant / Broad ladder and remove match_all](https://git.drupalcode.org/project/ai_context/-/work_items/3586394) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: 2026Sprint16, category::feature, priority::major, sprint candidate Description: ## Problem/motivation Follow-up to: #3586237+s Agent context selection is confusing today because the two selection modes encode mechanisms instead of user intent, and they are not supersets of each other: - **Minimal** (default) with **no subscriptions** injects almost nothing except Global, Always include, and **Target Entity** auto-matches. New agents silently get no situational context. - **Subscriptions** are required to inject Use Case, Context Tags, Taxonomy Terms, Entity Bundle, etc. — and an **empty scope on an item counts as a full subscription match**, so unscoped "gener… ### [Create multi-vocabulary taxonomy scope plugin](https://git.drupalcode.org/project/ai_context/-/work_items/3586237) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, category::feature, needs manual testing, priority::normal Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !250 [Issue #3586237: Add multi-vocabulary taxonomy scope plugin.](https://git.drupalcode.org/project/ai_context/-/merge_requests/250) | State: opened | Author: Kristen Pol (kepol), 1714 diff lines Description: ## Problem/motivation _**Note that this isn't a must have for 1.0 but a nice to have. Given that people think the current "tags" scope plugin previous the behavior this plugin would provide then it is really nice to have.**_ _**Note that weight = 20 should be used as follow-up to #3586388+s.**_ Follow up to: #3586198+s We do not have a scope plugin that allows associated context with the terms for content entities. Example: * Article **has terms**: foo, bar, hello * Blog post **has terms**: foo, whatever * One context item **has term**: foo * Another context item **has terms**: foo, bar… ### [[Meta] CCC MVP 1.0 roadmap](https://git.drupalcode.org/project/ai_context/-/work_items/3567798) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: Kristen Pol (kepol) | Labels: 2026Sprint10, 2026Sprint11, 2026Sprint12, 2026Sprint16 Description: >>> [!note] Migrated issue Reported by: [kristen pol](https://www.drupal.org/user/8389) >>> --- ## Problem/Motivation We need a stable release of CCC to support Drupal CMS that includes a lot of the ideas and features we've been discussing, including the 1-year plan capabilities. Note that the originally-planned 1.0 functionality expanded to include some features that were originally going to be in 1.1. --- ## Proposed resolution Update issue list and work through them Rough timing though beta4 isn't out yet --- ## Target dates - March 23rd: Beta1 release - March 23rd to 27th: … ### [Create CCC beta3 and beta4 and status update video](https://git.drupalcode.org/project/ai_context/-/work_items/3586333) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: 2026Sprint16, AI Initiative Sprint, ai::internal, category::task Description: Create a video on beta3 and beta4 and the current status of CCC and what's coming up. ### [Implement plugin-based generic context consumers and unified consumer configuration](https://git.drupalcode.org/project/ai_context/-/work_items/3586346) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::outside Description: ## Summary **Review the plan carefully before proceeding with implementation in case it needs adjustments.** Implement the architecture accepted in [#3586319](https://git.drupalcode.org/project/ai_context/-/work_items/3586319): AI Context will treat everything that receives context as a consumer, with agents becoming one consumer type. Consumer types will use Drupal attribute plugins, all configured consumers will use one configuration store, and agent and non-agent requests will share the same request-building and selection pipeline. This is a clean-slate beta change. Agent-specific factor… ### [[Meta] Prepare demo content and demo context items for the CCC to show how it works](https://git.drupalcode.org/project/ai_context/-/work_items/3586339) State: opened | Updated: 2026-08-09 | Author: Emma Horrell (emma-horrell) | Assigned: Emma Horrell (emma-horrell) | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, AI UX Description: ## Problem/motivation _**Note that if we at least get the code with one draft example merged in for beta4 that we can add the additional sample context in rc1 since it would be "documentation" in a sense.**_ Follow-up to: - #3586335 - #3586279 A new Context Control Center (CCC) installation is empty. People unfamiliar with CCC terminology and structure cannot easily see how source content, context items, scopes and consumer subscriptions work together. Provide realistic, optional demo data that lets people explore a complete CCC workflow before configuring it for their own organisation. … ### [Clarify scope eligibility, ranking, and limits in UI help and documentation](https://git.drupalcode.org/project/ai_context/-/work_items/3586348) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, blocker::stable Description: ## Summary _**Note that this could be implemented in rc1 because it's docs/help text and no functionality changes.**_ Follow-up to: - #3586281+s - #3586270+s - #3586335+s - #3586337+s Beta testing confirmed that the **subscription** model can remain for beta4, but the UI and documentation do not clearly explain how scope matching, eligibility, ranking, overrides, and limits work together. This issue improves inline help and user-facing documentation without changing scope behavior, configuration storage, selection logic, or subscription semantics. ## Problem The current Context scope de… ### [Pre-1.0 context selection reliability and diagnostics follow-up to issue 3586363](https://git.drupalcode.org/project/ai_context/-/work_items/3586383) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, category::task Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !252 [Issue #3586383: Pre-1.0 context selection reliability and diagnostics follow-up.](https://git.drupalcode.org/project/ai_context/-/merge_requests/252) | State: opened | Author: Kristen Pol (kepol), 1013 diff lines Description: **Blocker: Assess #3586348+s before proceeding on this issue.** ## Follow-up issue Follow-up to: #3586363 Child of the "Before 1.0" triage in #3586363+s. Improves selection transparency, conditional-subcontext failure visibility, and debug diagnostics before 1.0. **Scope:** #3, #4, #9 from the Before 1.0 list in #3586363. **Non-goals:** documentation/trust/compatibility work (#1, #2, #5, #6, #8 — separate issue), performance benchmarks (#7 — 1.1), usage vs observability (#10 — #3567803 / #3586213), rich selection diagnostics UI or persistence ([#3586242](https://git.drupalcode.org/projec… ### [Persist context-item token counts and show token-budget usage in CCC UI](https://git.drupalcode.org/project/ai_context/-/work_items/3586379) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: 2026Sprint16, AI Initiative Sprint, ai::inside, category::task Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !248 [Issue #3586379: Persist token counts and show budget usage in CCC UI.](https://git.drupalcode.org/project/ai_context/-/merge_requests/248) | State: opened | Author: Kristen Pol (kepol), 4635 diff lines Description: ## Summary Follow-up to: - #3586337+s - #3586348+s Implement the subscription-limit UX decisions from the Emma+Aidan review on #3586337. Persist each context item's estimated token count at save time, base token badges on percentage of the configured token budget, and add budget summary messaging on the agent subscription settings page. This issue implements the indicator behavior. It does not add new warning components beyond text, badges, and tooltips agreed in the design review. **Implementation:** [MR !248](https://git.drupalcode.org/project/ai_context/-/merge_requests/248) on branch … ### [QA team start testing CCC to get familiar with functionality and create QA plan](https://git.drupalcode.org/project/ai_context/-/work_items/3586342) State: opened | Updated: 2026-08-09 | Author: Kristen Pol (kepol) | Assigned: Bruna Emerich (brunaemerich) | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: ## Problem CCC is huge and there's a lot to test. Beta3 was released last week and there were bugs: - #3586338+s - #3586341+s These most likely would have be caught by the QA team. I tested here with AI on Drupal CMS / Drupal 11: #3586296+s but neglected to test with Drupal 10. Not sure why the settings pages didn't get hit though. I tested manually with Canvas AI though it would be amazing if that could be automated somehow. ## Solution QA team plays around with CCC to understand the functionality and starts a draft QA plan. Here's the QA plan from AI: https://git.drupalcode.org/-/… ### ["Global context" checkbox description renders a literal
                                                        instead of a line break](https://git.drupalcode.org/project/ai_context/-/work_items/3586369) State: opened | Updated: 2026-08-09 | Author: Sohail Lajevardi (doxigo) | Assigned: Daniel Rodriguez (danrod) | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !240 [Issue #3586369: Global context checkbox description renders a literal
                                                        instead of a line break.](https://git.drupalcode.org/project/ai_context/-/merge_requests/240) | State: opened | Author: Juan Correa (jucs7), 136 diff lines Description: On the AI context item edit form, the description under the **Global context** checkbox displays the tag as text: > Always include this context for every agent.\Saving the form with this > enabled will clear previous scope settings. `AiContextScopeGlobal::getFormDescription()` exists specifically so this checkbox can carry a line break. Its own docblock says so: ```php /** * Gets the checkbox description for the context item form. * * Uses a line break that is not safe for settings pages escaped with * Html::escape(), so keep plain text in getDescription() instead. */ protected functio… --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- - [e3dd5d03](https://git.drupalcode.org/project/ai_context/-/commit/e3dd5d03b05229da227207746ddf04f51ed46460) Issue #3586382: Pre-1.0 documentation, trust, and compatibility follow-up. — Kristen Pol (2026-08-10T03:48:49.000+00:00) - [934d2ee9](https://git.drupalcode.org/project/ai_context/-/commit/934d2ee94751e7f61ebc26eed7711654b76c5af7) Issue #3586390: Document purpose guidance for conditional subcontext. — Kristen Pol (2026-08-09T22:17:07.000+00:00) - [9794f244](https://git.drupalcode.org/project/ai_context/-/commit/9794f24401a17de4cf5ace4cef69f48b372bab13) Issue #3586276: Rename entity bundle and target entity scope plugins for better DX — Tamas Balog (2026-08-09T19:02:48.000+00:00) ======================================================================== ## [33] summariseModule:ai_ckeditor:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI CKEditor (machine name: ai_ckeditor) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a non-technical executive audience (CEO/leadership level). Focus on: business impact, strategic progress, risks, and what is being delivered. Avoid technical jargon. Do not mention branch names, function names, or API details. Explain what each piece of work means for users or the project's goals. Keep risk language proportionate to the stage of the software. For alpha or beta modules, unassigned bugs or open issues are normal and expected — do not describe them as 'reputational risks' or use alarmist framing. Reserve strong risk language for issues that are genuinely critical or blocking a stable release. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: project update bot (Project-Update-Bot)". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

                                                        AI CKEditor

                                                        then use

                                                        ,

                                                        ,

                                                          /
                                                        • , and as needed. Output only the HTML fragment with no surrounding , , or
                                                          tags. After the project summary prose, add a single subsection titled "

                                                          How can I help on this project?

                                                          " aimed at a non-technical executive. Suggest 2-3 concrete, high-level ways a leader could support or unblock progress (e.g. resourcing, stakeholder alignment, decision-making, funding, advocacy). Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, verify it against the issue data. Do not suggest actions that are already in progress or covered by an existing MR — for example, do not suggest that work needs to be started if an issue already has a Related MR. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). (none) --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/ai_ckeditor/-/merge_requests/10) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 432 diff lines Description: Relates to #3615721. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-916232. --- COMMITS (24h) --- (none) ======================================================================== ## [34] summariseModule:ai_search:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI Search (machine name: ai_search) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a non-technical executive audience (CEO/leadership level). Focus on: business impact, strategic progress, risks, and what is being delivered. Avoid technical jargon. Do not mention branch names, function names, or API details. Explain what each piece of work means for users or the project's goals. Keep risk language proportionate to the stage of the software. For alpha or beta modules, unassigned bugs or open issues are normal and expected — do not describe them as 'reputational risks' or use alarmist framing. Reserve strong risk language for issues that are genuinely critical or blocking a stable release. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. Do not name any individual people in this section. No one was active enough this period to list. Format your response as an HTML fragment. Start with

                                                          AI Search

                                                          then use

                                                          ,

                                                          ,

                                                            /
                                                          • , and as needed. Output only the HTML fragment with no surrounding , , or
                                                            tags. After the project summary prose, add a single subsection titled "

                                                            How can I help on this project?

                                                            " aimed at a non-technical executive. Suggest 2-3 concrete, high-level ways a leader could support or unblock progress (e.g. resourcing, stakeholder alignment, decision-making, funding, advocacy). Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, verify it against the issue data. Do not suggest actions that are already in progress or covered by an existing MR — for example, do not suggest that work needs to be started if an issue already has a Related MR. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Progressive indexing can drop tail chunks](https://git.drupalcode.org/project/ai_search/-/work_items/3584032) State: opened | Updated: 2026-08-09 | Author: Sergiu Nagailic (Nikro) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: Problem/Motivation The progressive/Long Chunk strategy can mark an item complete before all of its chunks are embedded. computeItemChunks() counts chunks with a hard-coded gpt-3.5 tokenizer, while getEmbedding() uses the tokenizer configured on the Search API s> In one reproducible case, tracking counted 106 chunks while actual chunking produced 370. Search API stopped after its batch beginning at chunk 100, marked the item indexed, and ne> Steps to reproduce Configure the Long Chunk embedding strategy and a tokenizer other than GPT-3.5, such as XLM-RoBERTa (or any other tokenizer). … ### [Batch embeddings for improved indexing performance](https://git.drupalcode.org/project/ai_search/-/work_items/3584024) State: opened | Updated: 2026-08-09 | Author: Artem Dmitriiev (a.dmitriiev) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint16, AI Initiative Sprint, ai::inside Description: This is a placeholder for AI Core issue https://git.drupalcode.org/project/ai/-/work_items/3568648 . The development of ai_search submodule is deprecated, so this issue is for porting functionality from parent issue. ### [Preview reports first batch as total chunks](https://git.drupalcode.org/project/ai_search/-/work_items/3584033) State: opened | Updated: 2026-08-09 | Author: Sergiu Nagailic (Nikro) | Assigned: unassigned | Labels: 2026Sprint14, 2026Sprint16, AI Initiative Sprint, ai::inside Description: Problem/Motivation The index fields Preview labels the number of embeddings returned by one call as Total chunks for this content. Progressive strategies return one slice of up to ten chunks, so long content is shown as having exactly ten chunks even when the full item contains many more. Steps to reproduce Configure a progressive chunk embedding strategy. Create an item that produces more than ten chunks. Open the AI Search index fields form and preview that item. The form reports ten total chunks and displays only the first slice. Proposed resolution Calculate the complete chu… ### [Clearing/resetting an index in 1x doesn't reset chunk-slicing progress so items silently re-index with zero embeddings](https://git.drupalcode.org/project/ai_search/-/work_items/3584035) State: opened | Updated: 2026-08-09 | Author: Abhisek Mazumdar (abhisekmazumdar) | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: ## Problem/Motivation The progressive chunk-slicing feature added in #3584014 tracks per-item embedding progress in `search_api_item.processed_chunks` / `total_chunks` (`SearchApiAiSearchBackend::indexItemsWithChunkSlicing()`), so large items can be embedded across multiple batch runs without a PHP timeout. On each run: ```php $offset = (int) ($progress[$item_id]['processed_chunks'] ?? 0); $embedding_strategy->setChunkOffset($offset); ... $client->indexItems($this->configuration, $index, [$item], $embedding_strategy); $new_processed = min($offset + static::MAX_CHUNKS_PER_BATCH, $total_chunks… ### [RagTool::execute() should expose structured per-result data and check entity access](https://git.drupalcode.org/project/ai_search/-/work_items/3584031) State: opened | Updated: 2026-08-09 | Author: Abhisek Mazumdar (abhisekmazumdar) | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: ## Problem/Motivation `RagTool::execute()` (`src/Plugin/AiFunctionCall/RagTool.php`) only ever hands the LLM a single flattened text string built from the search results. None of the per-result data survives the call: not which entity a chunk came from, not its score, not the raw chunk text. `getStructuredOutput()` returns `results` from `$this->results`, but `execute()` builds its output into a local `$end_results` array and never assigns anything to `$this->results`. It is always `[]`. This blocks consumers who want the *retrieved sources themselves*, not just the LLM's answer, from deleg… --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- (none) ======================================================================== ## [35] summariseModule:ai_translate:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI translate (machine name: ai_translate) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a non-technical executive audience (CEO/leadership level). Focus on: business impact, strategic progress, risks, and what is being delivered. Avoid technical jargon. Do not mention branch names, function names, or API details. Explain what each piece of work means for users or the project's goals. Keep risk language proportionate to the stage of the software. For alpha or beta modules, unassigned bugs or open issues are normal and expected — do not describe them as 'reputational risks' or use alarmist framing. Reserve strong risk language for issues that are genuinely critical or blocking a stable release. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. Do not name any individual people in this section. No one was active enough this period to list. Format your response as an HTML fragment. Start with

                                                            AI translate

                                                            then use

                                                            ,

                                                            ,

                                                              /
                                                            • , and as needed. Output only the HTML fragment with no surrounding , , or
                                                              tags. After the project summary prose, add a single subsection titled "

                                                              How can I help on this project?

                                                              " aimed at a non-technical executive. Suggest 2-3 concrete, high-level ways a leader could support or unblock progress (e.g. resourcing, stakeholder alignment, decision-making, funding, advocacy). Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, verify it against the issue data. Do not suggest actions that are already in progress or covered by an existing MR — for example, do not suggest that work needs to be started if an issue already has a Related MR. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Aggregate a node's translatable field-columns into a single chat request (opt-in batch translation)](https://git.drupalcode.org/project/ai_translate/-/work_items/3585527) State: opened | Updated: 2026-08-09 | Author: Tamas Balog (tbalog) | Assigned: Tamas Balog (tbalog) | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: --- ## Problem/Motivation `ai_translate` translates **one field-column per chat request**. `TextTranslator::translateContent()` is called once per column, and `ChatTranslationProvider::translateText()` rebuilds the full prompt (the configured translator prompt template + `setSystemPrompt('You are a helpful translator.')`) and calls `chat()` for each one. For a node with N translatable field-columns, that is N requests, each re-sending the **same** instruction block. For a typical 3-field node, roughly 1,000 of \~1,500 input tokens are the identical instructions sent three times. The redunda… ### [Refactor translation workflow to support Tool API and agent-driven translation](https://git.drupalcode.org/project/ai_translate/-/work_items/3585523) State: opened | Updated: 2026-08-09 | Author: Sven Decabooter (svendecabooter) | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: I am investigating whether I can have an AI Agent perform an entity translation, when a user requests this as part of an administrative AI agent interface. This would probably need some major refactoring of the module logic, since there are currently 2 endpoints: - UI batch translation - Drush command translation This would add a third one: Tool API translation So logic should be abstracted as much as possible where relevant, so all 3 entry points use the same code, rather than replicating it. I haven't investigated this further in detail, but already raising an issue here, in case someone … ### [InvalidArgumentException: Invalid translation language (und) when translating media entities](https://git.drupalcode.org/project/ai_translate/-/work_items/3585532) State: opened | Updated: 2026-08-09 | Author: szato (odi) | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, Quick Win Description: When using AI Translate to translate a media entity (e.g. media.image), the batch fails with: ``` InvalidArgumentException: Invalid translation language (und) specified. in Drupal\Core\Entity\ContentEntityBase->getTranslation() ``` **Steps to reproduce** - Enable AI Translate, configure an AI provider - Have a media type (e.g. image) with content translation enabled and field sync configured - Go to a media entity's translation overview, click "Translate using AI" for a non-existing language - Batch fails with the above exception **Proposed resolution** ``` --- a/src/Controller/AiTranslateC… ### [Feature: Translation result caching and cross-field deduplication](https://git.drupalcode.org/project/ai_translate/-/work_items/3585529) State: opened | Updated: 2026-08-09 | Author: Christoph Breidert (breidert) | Assigned: unassigned | Labels: 2026Sprint15, 2026Sprint16, AI Initiative Sprint, ai::inside Description: ## Problem/Motivation `ai_translate` re-sends every field to the LLM on every translation run, with no memory of previous translations. This causes two avoidable costs: 1. **Re-translation of unchanged content.** On a re-translation run (fixing one typo, updating a single field), every unchanged field is sent to the LLM again, even though the output would be identical to the previous run. 2. **Repeated translation of identical strings.** Paragraph-heavy entities and Layout Builder pages often contain the same short string in multiple components (shared CTA labels, navigation titles, standard… --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- (none) ======================================================================== ## [36] summariseModule:flowdrop:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: FlowDrop (machine name: flowdrop) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a non-technical executive audience (CEO/leadership level). Focus on: business impact, strategic progress, risks, and what is being delivered. Avoid technical jargon. Do not mention branch names, function names, or API details. Explain what each piece of work means for users or the project's goals. Keep risk language proportionate to the stage of the software. For alpha or beta modules, unassigned bugs or open issues are normal and expected — do not describe them as 'reputational risks' or use alarmist framing. Reserve strong risk language for issues that are genuinely critical or blocking a stable release. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: Shibin Das [17]". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

                                                              FlowDrop

                                                              then use

                                                              ,

                                                              ,

                                                                /
                                                              • , and as needed. Output only the HTML fragment with no surrounding , , or
                                                                tags. After the project summary prose, add a single subsection titled "

                                                                How can I help on this project?

                                                                " aimed at a non-technical executive. Suggest 2-3 concrete, high-level ways a leader could support or unblock progress (e.g. resourcing, stakeholder alignment, decision-making, funding, advocacy). Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, verify it against the issue data. Do not suggest actions that are already in progress or covered by an existing MR — for example, do not suggest that work needs to be started if an issue already has a Related MR. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Add a requires_confirmation flag to flowdrop_node_type, wired to the existing interrupt/HITL engine](https://git.drupalcode.org/project/flowdrop/-/work_items/3592383) State: closed | Updated: 2026-08-09 | Author: Shibin Das (D34dMan) | Assigned: unassigned | Labels: Description: ## Summary Add an optional `requires_confirmation` flag to the `flowdrop_node_type` config entity. When set, the workflow engine pauses before that tool node fires and asks the operator to confirm — **reusing FlowDrop's existing interrupt / human-in-the-loop (ChoiceNode) machinery** rather than introducing new pause infrastructure. ## Motivation Any agent-builder eventually wants *"pause and ask me before this tool node runs"* for outward-facing or irreversible actions (publish, send mail, external API writes, delete). Today `flowdrop_node_type` has no risk/confirmation field, so downstream… ### [Confirmation is governance, not a processor property: replace the requires_confirmation tri-state with a confirmation settings map](https://git.drupalcode.org/project/flowdrop/-/work_items/3592384) State: opened | Updated: 2026-08-09 | Author: Shibin Das (D34dMan) | Assigned: unassigned | Labels: Description: ## Summary 2.1.0 shipped the confirmation gate (#3592383): `requires_confirmation` tri-state on node types, effective value `type === TRUE ? TRUE : (instance ?? type ?? pluginHasSideEffects)`, one-way ratchet hardcoded in the runtime. The runtime machinery (gate chokepoint, argument-bound consume-once consent, decline down the error channel, both planes) is right and stays. The **config model** should evolve for 2.2. ## Two realizations **1. Requiring confirmation is a governance/security decision, not a processor property.** Something as ordinary as sending an email may need confirmation f… --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- - [af65e6c1](https://git.drupalcode.org/project/flowdrop/-/commit/af65e6c17a1cb886f359a1c123ed5559f1615108) docs: fix strict-mode link failures in pages build — Shibin Das (2026-08-09T23:23:47.000+02:00) - [64568ed5](https://git.drupalcode.org/project/flowdrop/-/commit/64568ed5991cadd820c9fd334ffc0954c0891d05) docs(flowdrop_node_type): resync the RT-GATE-14 binding token and coverage counts — Shibin Das (2026-08-09T21:39:07.000+02:00) - [dd9fbf79](https://git.drupalcode.org/project/flowdrop/-/commit/dd9fbf799b8a6e88a2892afe826855f4ed70e1a7) docs(flowdrop): write the 2.2.0 release docs — changelog, upgrade path, trust boundary — Shibin Das (2026-08-09T21:37:45.000+02:00) - [d8e4ba97](https://git.drupalcode.org/project/flowdrop/-/commit/d8e4ba97ccd166ea411f17e14a762edd153ddafe) feat(flowdrop_node_type): dedicated permission for confirmation governance — Shibin Das (2026-08-09T21:29:17.000+02:00) - [896e566a](https://git.drupalcode.org/project/flowdrop/-/commit/896e566a1f719129dee01766d445c8c2cc9158cc) fix(flowdrop_interrupt): assign gate interrupts to the initiator, surface unassigned ones — Shibin Das (2026-08-09T21:18:56.000+02:00) - [cea357d3](https://git.drupalcode.org/project/flowdrop/-/commit/cea357d3f89a73e39eec61a255b3db1dc885f742) fix(flowdrop_runtime): redact resolved secrets from the persisted gate prompt — Shibin Das (2026-08-09T21:05:37.000+02:00) - [c5983872](https://git.drupalcode.org/project/flowdrop/-/commit/c5983872683f7a65f1817ecdaf8806ad9dae9c96) fix(flowdrop_node_type): fold the legacy requires_confirmation forward in preSave() — Shibin Das (2026-08-09T20:48:14.000+02:00) - [aec1ab76](https://git.drupalcode.org/project/flowdrop/-/commit/aec1ab767578c12b7e5aa218b5dc0db9e2bff000) fix(flowdrop_node_type): save only what the confirmation post_updates change — Shibin Das (2026-08-09T20:40:41.000+02:00) - [885186ee](https://git.drupalcode.org/project/flowdrop/-/commit/885186eeac5d5f07b424f493f2aefeb2f866e26a) fix(flowdrop_runtime): fail closed when the gate derivation cannot resolve the plugin — Shibin Das (2026-08-09T20:40:33.000+02:00) - [7c5e327c](https://git.drupalcode.org/project/flowdrop/-/commit/7c5e327cf845f6f84efa20720b1c04e95f9b25a7) fix(flowdrop_interrupt): gate interrupts expire with cancellation semantics — Shibin Das (2026-08-09T20:26:19.000+02:00) - [d91d433e](https://git.drupalcode.org/project/flowdrop/-/commit/d91d433e5c5b742a7ea1361db0e7d9dc1bd8b4f7) fix(flowdrop_interrupt): make the gate's consent consume-once atomic — Shibin Das (2026-08-09T20:15:51.000+02:00) - [3fa367b9](https://git.drupalcode.org/project/flowdrop/-/commit/3fa367b98f9ccfb22b19c2619f197932607f2197) docs(flowdrop): rewrite the gate rules for governance — RT-GATE-7..10 — Shibin Das (2026-08-09T19:32:12.000+02:00) - [b958834f](https://git.drupalcode.org/project/flowdrop/-/commit/b958834f6513894d8ec5695c027ec4139c79c2a3) feat(flowdrop_node_type): serve the confirmation controls to the editor — Shibin Das (2026-08-09T19:27:57.000+02:00) - [1b4f4f79](https://git.drupalcode.org/project/flowdrop/-/commit/1b4f4f792575d690327fe2b056ea5687ea50658a) feat(flowdrop_runtime): resolve the confirmation gate governance-first — Shibin Das (2026-08-09T19:27:42.000+02:00) - [28e88d19](https://git.drupalcode.org/project/flowdrop/-/commit/28e88d19e1bcedf609d5f0aa58950303c49b4a4f) feat(flowdrop_node_type): confirmation becomes a governance settings map — Shibin Das (2026-08-09T19:12:20.000+02:00) - [69a5af0e](https://git.drupalcode.org/project/flowdrop/-/commit/69a5af0e15fc88756184e88f338bc23c9c429ff2) chore(release): 2.1.0 — the confirmation gate, non-breaking by construction — Shibin Das (2026-08-09T17:45:38.000+02:00) - [1b78841c](https://git.drupalcode.org/project/flowdrop/-/commit/1b78841c668b776cbfce88dca8fca64571004845) feat(flowdrop_node_type): grandfather existing node types out of the gate — Shibin Das (2026-08-09T17:38:08.000+02:00) ======================================================================== ## [37] summariseModule:langfuse:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Langfuse (machine name: langfuse) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a non-technical executive audience (CEO/leadership level). Focus on: business impact, strategic progress, risks, and what is being delivered. Avoid technical jargon. Do not mention branch names, function names, or API details. Explain what each piece of work means for users or the project's goals. Keep risk language proportionate to the stage of the software. For alpha or beta modules, unassigned bugs or open issues are normal and expected — do not describe them as 'reputational risks' or use alarmist framing. Reserve strong risk language for issues that are genuinely critical or blocking a stable release. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: Abhisek Mazumdar (abhisekmazumdar)". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

                                                                Langfuse

                                                                then use

                                                                ,

                                                                ,

                                                                  /
                                                                • , and as needed. Output only the HTML fragment with no surrounding , , or
                                                                  tags. After the project summary prose, add a single subsection titled "

                                                                  How can I help on this project?

                                                                  " aimed at a non-technical executive. Suggest 2-3 concrete, high-level ways a leader could support or unblock progress (e.g. resourcing, stakeholder alignment, decision-making, funding, advocacy). Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, verify it against the issue data. Do not suggest actions that are already in progress or covered by an existing MR — for example, do not suggest that work needs to be started if an issue already has a Related MR. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). (none) --- MERGE REQUESTS (24h) --- ### [Issue #3548465: Add createScore() for feedback and a langfuse_feedback submodule](https://git.drupalcode.org/project/langfuse/-/merge_requests/6) State: opened | Author: Abhisek Mazumdar (abhisekmazumdar) | Branch: 3548465-implement-feedback | 802 diff lines Description: Closes #3548465 --- COMMITS (24h) --- (none) ======================================================================== ## [38] summariseModule:agui:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AG-UI (machine name: agui) Reporting period: last 24h (2026-08-09T05:00:04+00:00 to 2026-08-10T05:00:04+00:00) You are writing for a non-technical executive audience (CEO/leadership level). Focus on: business impact, strategic progress, risks, and what is being delivered. Avoid technical jargon. Do not mention branch names, function names, or API details. Explain what each piece of work means for users or the project's goals. Keep risk language proportionate to the stage of the software. For alpha or beta modules, unassigned bugs or open issues are normal and expected — do not describe them as 'reputational risks' or use alarmist framing. Reserve strong risk language for issues that are genuinely critical or blocking a stable release. Focus your report on activity that occurred within the reporting period (comments, MRs merged, commits pushed, status changes). Use the issue description to understand what each issue is about and provide context, but do not report on the description itself as news — it is background information only. Do not list every issue/MR individually — synthesise into prose. Keep it under 200 words. Do not use emoticons or mdashes. Do not wrap usernames or contributor names in tags — mention them as plain text. When mentioning a specific issue or MR, always hyperlink it using the URL provided in the data (e.g. Issue Title or the Markdown equivalent). Do not reference issues or MRs by number alone — always use their title as the link text. Do NOT attribute any action to a named individual. Do not say who merged, fixed, reviewed, authored, or opened anything. The "Author" and "Assigned" labels in the data are context only — never surface them as "X did Y". Describe the work itself in the passive voice (e.g. "the provider refactor was merged"), not the person who did it. The author of a merge request is often not the person who completed or merged the work, so naming them is misleading. End your section with a single line listing the people who were active this period, exactly in this form (plain text, no ): "Contributors: project update bot (Project-Update-Bot)". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

                                                                  AG-UI

                                                                  then use

                                                                  ,

                                                                  ,

                                                                    /
                                                                  • , and as needed. Output only the HTML fragment with no surrounding , , or
                                                                    tags. After the project summary prose, add a single subsection titled "

                                                                    How can I help on this project?

                                                                    " aimed at a non-technical executive. Suggest 2-3 concrete, high-level ways a leader could support or unblock progress (e.g. resourcing, stakeholder alignment, decision-making, funding, advocacy). Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, verify it against the issue data. Do not suggest actions that are already in progress or covered by an existing MR — for example, do not suggest that work needs to be started if an issue already has a Related MR. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Automated Drupal 12 compatibility fixes for agui 1.0.x-dev](https://git.drupalcode.org/project/agui/-/work_items/3590037) State: opened | Updated: 2026-08-09 | Author: project update bot (Project-Update-Bot) | Assigned: unassigned | Labels: Description: ## Problem/Motivation This is an automated issue to help make this module compatible with Drupal 12. Changes will periodically be added to this issue that remove deprecated API uses. The changes are posted by the [Project Update Bot](https://www.drupal.org/u/project-update-bot) official user account. This account will not receive any issue credit contributions. To stop the bot from posting further updates, post a comment containing `/ProjectUpdateBot:ignore` anywhere in its body. The bot will then leave this issue alone without it needing to be closed. ## Proposed resolution A merge reque… ### [[META] Improve Drupal Assistant Implementation](https://git.drupalcode.org/project/agui/-/work_items/3572388) State: opened | Updated: 2026-08-09 | Author: drupalbot | Assigned: Bryan Sharpe (b_sharpe) | Labels: 2026Sprint14, 2026Sprint15, 2026Sprint16, AI Initiative Sprint Description: >>> [!note] Migrated issue Reported by: [b_sharpe](https://www.drupal.org/user/2512258) >>> Problem/Motivation The current Drupal Assistant implementation in the demo page was a POC meant to show it can work with AG-UI, this should instead align to become a replacement for the ai_chatbot (Deepchat). This might spawn AI module tickets so we can hook into the events used. We should align also with the Polling service so this is where we could emit ag-ui events. I believe the following could/should work: A single, non-streamed request with all events - This just needs a refactor, technicall… --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/agui/-/merge_requests/30) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 68 diff lines Description: Relates to #3590037. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-916232. --- COMMITS (24h) --- (none) ======================================================================== ## [39] generateTldr:executive ======================================================================== You are an editor distilling a Drupal AI project newsletter into its most important highlights. You are writing for a non-technical executive audience. Focus on business impact, strategic progress, and delivery milestones. Avoid all technical jargon. Read all the module summaries below. Separate the highlights into two categories: - SHIPPED: things that were merged, fixed, released, or completed during this period. - ONGOING: things that are actively in progress, under review, or blocked. Be specific — name the module, what happened, and why it matters. Do not use emoticons or mdashes. Do not include any text outside the two sections. When you mention a specific issue or merge request, add an inline citation using [N] where N is the reference number from the list below. You may cite multiple references per item, e.g. [1][3]. Place citations immediately after the relevant phrase, before any punctuation. Format as two HTML sections. Use exactly this structure (all
                                                                  • elements must be inside the
                                                                      , never outside it):

                                                                      Shipped

                                                                      1. Title here — One sentence explanation [1].
                                                                      2. Another title — One sentence explanation.

                                                                      Ongoing

                                                                      1. Title here — One sentence explanation [2].
                                                                      Up to 5 items per section. Do not output any text, tags, or characters outside these two sections. Output only the HTML fragment, no surrounding tags. --- REFERENCE LIST --- [1] Add thumbs-up and thumbs-down icons to the shared AI icon set (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586660 [2] Automated Drupal 12 compatibility fixes for ai 2.0.x-dev (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586525 [3] Document FunctionalJavascript test conventions and add CI check for ungrouped/unrecorded tests (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3582633 [4] AI Automator Token Replacement with removing unresolved Tokens (Checkbox?) (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586535 [5] Drupal 11.4 DeepChat Block does not work with Webprofiler enabled (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586615 [6] Introduce a modern AI Chatbot frontend library (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586571 [7] Provide proper support for "unconfigured" AI provider state (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3572645 [8] The Toolbar Chatbot runs the fold out animation on page reload (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3568246 [9] ai_ckeditor: streamGenerateContent causes 400 Bad Request with Gemini 2.x models (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586425 [10] Chatbot closes itself when adding a modal (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3499451 [11] Preserve HTML in streamed output (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586558 [12] Indexing breaks with custom SearchAPI DataSource (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3575992 [13] Accept input and output as typed interfaces in the AI request events (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3567673 [14] non streaming broken (fiber branch) (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586457 [15] Fix Translate Text Explorer form functionality (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3553353 [16] [AI Prompts] Update the Type Casing of Entities/Permissions (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3574417 [17] How does the provider notify of better models (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3575689 [18] Research: Open standard for saving one request (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3566569 [19] Provide AI usage reports in Drupal admin panel (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3535260 [20] AI Agents framework built on Symfony AI Agent (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1923 [21] Automated Project Update Bot fixes (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1673 [22] Issue #3586535: AI Automators strip unresolved tokens from prompts (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1884 [23] [META] 2026 AI Inside Roadmap to DrupalCon Rotterdam 2026 (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3586657 [24] Drupal AI UX meeting 3 August 2026 (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3586607 [25] [META] 2026 Outside-in / Innovation Roadmap (draft) (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3576908 [26] [Meta] AI Content Review Workflow (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3545606 [27] Start setting up AI Starterkit (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3569199 [28] Create documentation on how to create issues that are testable on DrupalForge (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3583362 [29] GitLab workflow automation for AI Initiative repos (exploration + rollout) (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3586474 [30] UX: Install and investigate WordPress 7.x for new AI features (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3586595 [31] Create AI Validations Recipe (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3585699 [32] Automated Drupal 12 compatibility fixes for ai_integration_eca 1.0.x-dev (ai_integration_eca, Issue) — https://git.drupalcode.org/project/ai_integration_eca/-/work_items/3585018 [33] Automated Project Update Bot fixes (ai_integration_eca, MR) — https://git.drupalcode.org/project/ai_integration_eca/-/merge_requests/13 [34] Run more than one test group in Bulk - Test Collections? (ai_agents_test, Issue) — https://git.drupalcode.org/project/ai_agents_test/-/work_items/3541324 [35] Image Embeddings (gemini_provider, Issue) — https://git.drupalcode.org/project/gemini_provider/-/work_items/3588392 [36] Implement getSupportedCapabilities method in Provider class (gemini_provider, Issue) — https://git.drupalcode.org/project/gemini_provider/-/work_items/3589184 [37] Add support for batch embeddings (gemini_provider, Issue) — https://git.drupalcode.org/project/gemini_provider/-/work_items/3589183 [38] #3569845: Add Oauth Scope Validation (mcp, MR) — https://git.drupalcode.org/project/mcp/-/merge_requests/44 [39] Automated Drupal 12 compatibility fixes for ai_agents 1.4.x-dev (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3586038 [40] Add limits on how often a tool can run (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3547995 [41] Let an agent use a role when running a tool (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3518167 [42] [DISCUSS] Make it possible to create tool instances (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3552038 [43] Allow agents to have permissions, user or a role (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3586019 [44] AI Agent entity form should reject machine names that collide with existing code-plugin IDs (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3586026 [45] Make it possible to restrict the order of tools during agent executions (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3560681 [46] Use the `ai_json_schema` editor for the AI Agent structured-output schema field (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3586042 [47] feat: Per-tool approval mode (pre-approved / approve-once / always) with loop pause-resume (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3586020 [48] Allow callers to supply additional tags for the chat calls made by AiAgentEntityWrapper (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3586055 [49] Research Scratchboards (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3576571 [50] Use streamed chat for agents (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3538174 [51] Give a parent agent possibility to forward request as is (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3550098 [52] Create implementation of ShortTermMemory (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3546411 [53] Automated Project Update Bot fixes (ai_agents, MR) — https://git.drupalcode.org/project/ai_agents/-/merge_requests/282 [54] fix: #3582961 fail closed when tool input is invalid or missing (tool, MR) — https://git.drupalcode.org/project/tool/-/merge_requests/113 [55] Resolve "Create a skill for generating Tool plugins (best practices, how-to, placement)" (tool, MR) — https://git.drupalcode.org/project/tool/-/merge_requests/93 [56] fix: #3582960 validate every multiple input item (tool, MR) — https://git.drupalcode.org/project/tool/-/merge_requests/112 [57] Dependency Dashboard (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591657 [58] PHPStan failing on global $argv usage (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591931 [59] Allow per-node override of Content Template via checkbox in node selector (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3567225 [60] Canvas AI: Cover the error path that clears stored agent state (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591927 [61] Canvas AI: Add Playwright coverage for the component agent hop loop (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591926 [62] Canvas AI: Add a Drupal Canvas Agent that answers general questions (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591924 [63] Canvas AI: Research how a user can cancel a running chat turn (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591923 [64] Canvas AI: Add end-to-end kernel coverage for the dev page builder agent (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591922 [65] Canvas AI: Add a dev page builder agent and wire the placement tools (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591921 [66] Canvas AI: Add a catalog-only parameter to the get_component_context tool (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591920 [67] Canvas AI: Run the agent selected in configuration instead of a hardcoded one (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591919 [68] Canvas AI: Expose Props of Blocks to the Agent (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3569120 [69] Canvas AI: Client-side orchestration loop for Canvas AI(POC) (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591615 [70] Canvas AI: Add Tools dropdown to chat UI (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591856 [71] Canvas AI: page builder discards the whole build when the LLM names a region that does not exist (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591876 [72] fix(deps): update npm minor and patch (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1238 [73] fix: #3591931 Do not rely on $argv being a global (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1485 [74] bug: #3591839 Preserve the query string when stripping the language prefix; a... (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1387 [75] task: #3567225 Make the component tree loader extensible (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/948 [76] Pre-1.0 documentation, trust, and compatibility follow-up to issue 3586363 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586382 [77] Remove max_items context limit and rely on the token budget (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586378 [78] Document Purpose field guidance for conditional subcontext selection (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586390 [79] [Meta] Prepare CCC for Inside AI Rotterdam demo (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586386 [80] Create CCC recipe for Inside Rotterdam demo (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586385 [81] Add context item Priority field and use it for selection ordering (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586376 [82] Rename entity bundle and target entity scope plugins for better DX (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586276 [83] Clarify and stabilize the scope plugin extension boundary for 1.0 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586392 [84] Introduce more granular permissions to CCC (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3563036 [85] Create graphic to explain how context scope works (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3571104 [86] Assess possible 1.0 and 1.1 features and UX/DX improvements following TDT questions (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586363 [87] Align scope scoring, language service, and contextual selection behavior (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586388 [88] Sprint 16 CCC roadmap updates, sprint planning, and issue triage (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586368 [89] Recruit additional CCC beta testers (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586235 [90] Update CCC maintainers in README.md (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586366 [91] Drupal 10 does not invoke attribute-based theme and Scheduler hooks (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586344 [92] Add content type context scope for MVP (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3570934 [93] [Spike] Complete scope plugin persistence API: manager orchestration, target entity encapsulation, and plugin-driven admin/selection (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586243 [94] Review and update CCC permissions before rc1 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586358 [95] Document the AI Context role and permission matrix for 1.0 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586395 [96] Automated Drupal 12 compatibility fixes for ai_context 1.0.x-dev (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586269 [97] Resolve `use_default` provider config for conditional subcontext selection (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586391 [98] CCC QA scripts for 1.0 testing (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586226 [99] Install `target_entities` field storage when Dynamic Entity Reference is enabled on existing sites (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586375 [100] Test current conditional subcontext selection before changing the prompt (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586351 [101] Review and document context selection ranking factors before 1.0 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586365 [102] Redesign selection modes as a nested Minimal / Relevant / Broad ladder and remove match_all (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586394 [103] Create multi-vocabulary taxonomy scope plugin (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586237 [104] [Meta] CCC MVP 1.0 roadmap (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3567798 [105] Create CCC beta3 and beta4 and status update video (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586333 [106] Implement plugin-based generic context consumers and unified consumer configuration (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586346 [107] [Meta] Prepare demo content and demo context items for the CCC to show how it works (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586339 [108] Clarify scope eligibility, ranking, and limits in UI help and documentation (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586348 [109] Pre-1.0 context selection reliability and diagnostics follow-up to issue 3586363 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586383 [110] Persist context-item token counts and show token-budget usage in CCC UI (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586379 [111] QA team start testing CCC to get familiar with functionality and create QA plan (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586342 [112] "Global context" checkbox description renders a literal
                                                                      instead of a line break (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586369 [113] Issue #3586378: Remove max_items context limit and rely on token budget. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/244 [114] Issue #3586383: Pre-1.0 context selection reliability and diagnostics follow-up. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/252 [115] Issue #3586382: Pre-1.0 documentation, trust, and compatibility follow-up. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/253 [116] Issue #3586376: Add context item priority field and selection tie-breakers. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/245 [117] Issue #3586276: Rename entity bundle and target entity scope plugins for better DX (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/195 [118] Issue #3586390: Document purpose guidance for conditional subcontext. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/246 [119] Issue #3586392: Clarify and stabilize scope plugin extension boundary for 1.0. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/249 [120] Issue #3586243: Complete scope plugin API before RC1: persistence, form encapsulation, validation, capability flags, and documented interface sections. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/164 [121] Issue #3586395: Document the AI Context role and permission matrix for 1.0. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/254 [122] Issue #3586391: Resolve use_default provider for conditional subcontext. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/247 [123] Issue #3586375: Install target_entities storage when DER is enabled later. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/251 [124] Issue #3586369: Global context checkbox description renders a literal
                                                                      instead of a line break. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/240 [125] Issue #3586237: Add multi-vocabulary taxonomy scope plugin. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/250 [126] Issue #3586379: Persist token counts and show budget usage in CCC UI. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/248 [127] Automated Project Update Bot fixes (ai_ckeditor, MR) — https://git.drupalcode.org/project/ai_ckeditor/-/merge_requests/10 [128] Progressive indexing can drop tail chunks (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584032 [129] Batch embeddings for improved indexing performance (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584024 [130] Preview reports first batch as total chunks (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584033 [131] Clearing/resetting an index in 1x doesn't reset chunk-slicing progress so items silently re-index with zero embeddings (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584035 [132] RagTool::execute() should expose structured per-result data and check entity access (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584031 [133] Aggregate a node's translatable field-columns into a single chat request (opt-in batch translation) (ai_translate, Issue) — https://git.drupalcode.org/project/ai_translate/-/work_items/3585527 [134] Refactor translation workflow to support Tool API and agent-driven translation (ai_translate, Issue) — https://git.drupalcode.org/project/ai_translate/-/work_items/3585523 [135] InvalidArgumentException: Invalid translation language (und) when translating media entities (ai_translate, Issue) — https://git.drupalcode.org/project/ai_translate/-/work_items/3585532 [136] Feature: Translation result caching and cross-field deduplication (ai_translate, Issue) — https://git.drupalcode.org/project/ai_translate/-/work_items/3585529 [137] Add a requires_confirmation flag to flowdrop_node_type, wired to the existing interrupt/HITL engine (flowdrop, Issue) — https://git.drupalcode.org/project/flowdrop/-/work_items/3592383 [138] Confirmation is governance, not a processor property: replace the requires_confirmation tri-state with a confirmation settings map (flowdrop, Issue) — https://git.drupalcode.org/project/flowdrop/-/work_items/3592384 [139] Issue #3548465: Add createScore() for feedback and a langfuse_feedback submodule (langfuse, MR) — https://git.drupalcode.org/project/langfuse/-/merge_requests/6 [140] Automated Drupal 12 compatibility fixes for agui 1.0.x-dev (agui, Issue) — https://git.drupalcode.org/project/agui/-/work_items/3590037 [141] [META] Improve Drupal Assistant Implementation (agui, Issue) — https://git.drupalcode.org/project/agui/-/work_items/3572388 [142] Automated Project Update Bot fixes (agui, MR) — https://git.drupalcode.org/project/agui/-/merge_requests/30 --- MODULE SUMMARIES ---

                                                                      AI (Artificial Intelligence)

                                                                      Development activity over the past 24 hours centered on expanding the module's strategic capabilities and addressing user experience improvements across the chatbot and content generation features.

                                                                      A significant new AI Agents framework was introduced, built on Symfony AI components. This addition enables more sophisticated automation workflows with support for controls that can pause execution for human approval, providing organizations with better governance over AI-driven processes. The framework includes configurable agents and integration with command-line tools for testing and management.

                                                                      Several user interface refinements are in progress. Work continues on standardizing feedback controls across the ecosystem through a shared icon set for thumbs-up and thumbs-down, which will create visual consistency across different AI features. An evaluation of modern chatbot frontend libraries is underway to reduce technical coupling and improve customization options for organizations deploying conversational interfaces.

                                                                      Several compatibility and functionality issues received attention, including problems with chatbot functionality in Drupal 11.4, streaming errors with newer Gemini models, and HTML preservation during content streaming. A merge request addressing token replacement behavior is under review to prevent unnecessary data from being sent to AI services.

                                                                      How can I help on this project?

                                                                      Consider prioritizing resources for the chatbot library evaluation to inform architectural decisions before broader adoption. Ensure testing capacity is available for the new Agents framework as organizations will need clear documentation and examples before deploying approval-gated automation workflows in production environments.

                                                                      Contributors: harivansh sharma (harivansh), project update bot (Project-Update-Bot), Rodel Duterte (rduterte)

                                                                      ---

                                                                      Drupal AI Initiative

                                                                      Activity this period focused on planning and coordination for the September demonstration at DrupalCon Rotterdam. The team is working toward a single integrated site that will showcase AI search, content review, translation, editor chat, and quality guardrails working together on multilingual content. The goal is to let visitors experience these capabilities as a unified system rather than separate features, with the ability to launch the demonstration themselves in seconds.

                                                                      Progress continued on the AI Content Review Workflow, which was closed during this period. Work continues on the supporting recipe and documentation to make these features easy to install and configure. Planning discussions also covered compliance requirements, including work needed for EU AI Act disclosure obligations.

                                                                      Several coordination and process improvements are underway, including exploration of GitLab workflow automation to reduce manual maintenance overhead, and competitive research into WordPress 7.x AI features to inform design decisions. The initiative is also examining how to streamline testing across multiple development modules simultaneously.

                                                                      How can I help on this project?

                                                                      • Ensure the team has access to higher-education content partnerships or sample datasets needed for the Rotterdam demonstration site
                                                                      • Support outreach to potential users or partners who could provide feedback on the integrated demonstration before the conference
                                                                      ---

                                                                      AI Integration - ECA

                                                                      Work has begun on preparing the module for compatibility with the next major version of the platform (Drupal 12). An automated process has identified areas where the module uses features that will no longer be supported, and a merge request with compatibility fixes has been prepared for review. This proactive work addresses technical debt before it becomes a problem, ensuring the module will continue to function when the platform evolves. The changes are ready for evaluation but have not yet been integrated.

                                                                      The compatibility tracking issue remains open and will be updated as further adjustments are identified. This is standard maintenance work for a module in active development.

                                                                      How can I help on this project?

                                                                      Consider allocating developer time to review and test the pending compatibility updates, ensuring they meet quality standards before integration. If this module is strategically important, confirm ongoing maintenance support is resourced through the next platform release cycle.

                                                                      Contributors: project update bot (Project-Update-Bot)

                                                                      ---

                                                                      AI Agents Test

                                                                      No significant development activity occurred during this period. The project continues to track an open enhancement request for Run more than one test group in Bulk - Test Collections?, which would allow users to execute multiple test groups at once rather than running them individually. This capability would support faster evaluation of different models and streamline automated testing workflows, helping teams compare performance across various configurations more efficiently.

                                                                      The module remains in active development as part of the AI Initiative Sprint, with no commits or merged changes in the last 24 hours.

                                                                      How can I help on this project?

                                                                      • Confirm whether bulk test execution is a priority feature that should be resourced and scheduled for delivery.
                                                                      • Ensure the team has dedicated capacity to work on enhancements beyond the current sprint commitments.
                                                                      ---

                                                                      Gemini Provider

                                                                      The Gemini Provider module saw continued planning activity focused on expanding its embedding capabilities and improving compatibility with the broader AI module ecosystem. Three issues were updated during the period, all related to ongoing sprint work.

                                                                      Work is underway to add support for batch embeddings, which would allow multiple pieces of content to be processed together more efficiently. Progress on exposing provider capabilities continues, ensuring the module can properly communicate what features it supports to other parts of the system. Additionally, planning for image embeddings is ongoing, which would enable searching and indexing based on visual content rather than just text—a capability that distinguishes Gemini from most other AI providers.

                                                                      No code was merged during this period. The work remains in the development and review stages, which is typical for active feature development in an evolving module.

                                                                      How can I help on this project?

                                                                      • Ensure the team has access to subject matter experts who can validate whether image embedding capabilities meet real user needs and business use cases.
                                                                      • Clarify priority between batch processing efficiency improvements and new image features to help the team sequence work effectively.
                                                                      ---

                                                                      Model Context Protocol

                                                                      The Model Context Protocol module saw development progress during this period focused on security and access control. A merge request addressing OAuth scope validation was opened, introducing controls to ensure proper authorization checks when the module interacts with external systems or resources. This work strengthens the module's ability to enforce permissions and prevent unauthorized access, which is important for protecting sensitive content and maintaining compliance in enterprise environments.

                                                                      The module remains in active development with work continuing on foundational security features. As an early-stage project, ongoing development activity like this is expected and healthy.

                                                                      How can I help on this project?

                                                                      • Ensure the development team has access to security review expertise to validate OAuth implementation patterns before release
                                                                      • Clarify the timeline and business priority for reaching a stable release to help focus development efforts

                                                                      Contributors: Shubham Goel (shubhamgoel)

                                                                      ---

                                                                      AI Agents

                                                                      The reporting period saw continued work on governance, safety, and multi-agent orchestration capabilities. Ten existing feature and improvement issues were updated, primarily around permission models, tool execution controls, and agent coordination.

                                                                      Key themes include efforts to allow agents to adopt specific roles or permissions when executing tools (decoupling agent authority from end-user sessions), mechanisms to limit how often a tool can run (preventing infinite loops or runaway behaviour), and a new approval-mode system that would let administrators gate sensitive tool calls with human review before execution. Work is also progressing on multi-agent memory management, enabling parent agents to pass context efficiently to child agents without losing fidelity or incurring excessive token costs.

                                                                      A new bug was identified around agent machine-name validation: the system currently allows administrators to create agents whose identifiers collide with code-defined plugins, causing silent failures. An automated compatibility merge request for Drupal 12 was opened but not yet merged.

                                                                      Overall, the project is advancing steadily toward production-grade agent orchestration with better safety controls and clearer operational boundaries. No blocking issues were reported during the period.

                                                                      How can I help on this project?

                                                                      • Prioritise resourcing for the permission and role model work, which underpins secure autonomous agent deployments.
                                                                      • Review and approve the proposed tool approval-mode design to unblock development of human-in-the-loop safeguards.

                                                                      Contributors: project update bot (Project-Update-Bot)

                                                                      ---

                                                                      Tool API

                                                                      Three merge requests addressing input validation and developer tooling were opened during this period.

                                                                      Two security-oriented improvements were prepared to strengthen how the system handles invalid or incomplete tool inputs. The first ensures that validation now checks every item when multiple values are provided, rather than stopping at the first error—meaning users will see all problems at once instead of fixing issues one at a time. The second change makes the system fail safely when tool input is invalid or missing, denying access rather than exposing errors or allowing unintended behavior.

                                                                      A third request introduces tooling to help developers generate Tool plugins following best practices, which should reduce onboarding time and improve consistency across implementations.

                                                                      All three changes remain under review. No issues were updated and no code was merged during the period, indicating the project is in an active development phase with work progressing toward integration.

                                                                      How can I help on this project?

                                                                      • Ensure reviewer capacity is available to evaluate and merge the three open validation and tooling improvements.
                                                                      • Clarify timelines or priority for stabilizing input handling ahead of broader adoption.

                                                                      Contributors: Alex Urevick-Ackelsberg (alexua), Marcus Johansson (Marcus_Johansson)

                                                                      ---

                                                                      Drupal Canvas

                                                                      Development activity this period focused on artificial intelligence capabilities and infrastructure improvements. Nine new issues were opened to outline the architecture for a multi-agent AI system that will enable the platform to build pages, create components, and answer user questions through a conversational interface. The work establishes a foundation for a tool selection interface that lets users direct which AI capability handles their request, rather than relying solely on automated routing.

                                                                      A merge request addressing language prefix handling was opened, fixing an issue where users editing content in multilingual configurations could encounter broken redirects or blank screens. Separately, dependency management infrastructure continued routine updates.

                                                                      The AI work represents a significant evolution in how users will interact with the page building system. Currently, timeout limitations on hosted platforms prevent complex operations from completing, and any validation error forces a complete rebuild. The planned architecture breaks work into smaller requests that can provide progressive feedback and recover from partial failures.

                                                                      How can I help on this project?

                                                                      • Provide guidance on whether the AI chat interface should expose all available tools to users immediately, or introduce them progressively as the feature matures and testing validates their reliability.
                                                                      • Ensure hosting platform constraints (timeout limits, rate limits) are documented and shared with the development team to inform architectural decisions around request chunking.

                                                                      Contributors: **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Fons Vandamme (f0ns), Rajab Natshah (RajabNatshah), Tim Plunkett (tim.plunkett), AKHIL BABU (AkhilBabu)

                                                                      ---

                                                                      Context Control Center (CCC)

                                                                      Progress this period focused on stabilizing documentation, guidance, and developer experience ahead of the 1.0 release. Three substantial pieces of work were merged: comprehensive pre-release documentation covering security guidance, API annotation, and trust boundaries; improved guidance on writing effective "Purpose" descriptions for conditional subcontext features, helping authors understand how models use this field to decide which context applies; and a developer experience improvement that renamed two scope plugins to better reflect their actual use—clarifying that one applies to entire entity types rather than bundles, and the other to individual entity items rather than generic targets.

                                                                      Planning activity continued around the upcoming Inside AI Rotterdam demo, including the design of a recipe to ship university-specific context and wire consumer subscriptions for the demo site. Several open issues are now being refined to address selection behavior, token budgets, permissions documentation, and quality assurance readiness. Work to remove the overlapping "max items" limit in favor of the more accurate token budget control remains in progress, as does the addition of a priority field to give editors explicit control over selection order when multiple items compete.

                                                                      The project is in active beta. Multiple merge requests covering permissions, scope behavior alignment, and conditional subcontext configuration are under review. Quality assurance planning has begun to prepare for pre-1.0 testing, and beta testing feedback is driving refinements to UI help text and selection transparency.

                                                                      How can I help on this project?

                                                                      • Confirm resourcing and timeline commitments for the Inside AI Rotterdam demo, particularly recipe content creation and demo-site integration testing.
                                                                      • Prioritize internal review bandwidth for in-progress merge requests covering permissions, scope alignment, and token budget UI—several are prerequisites for the stable release.

                                                                      Contributors: Juan Correa (jucs7), Kristen Pol (kepol) [2], Tamas Balog (tbalog) [1]

                                                                      ---

                                                                      AI CKEditor

                                                                      The AI CKEditor module saw minimal activity over the past 24 hours. A maintenance update was opened to apply automated fixes generated by the project's update tooling. This type of work helps keep the codebase aligned with current Drupal standards and prevents technical debt from accumulating. The update has not yet been reviewed or integrated.

                                                                      No issues were actively discussed or resolved during this period, and no code changes were finalized. This represents a quiet day for the module with routine maintenance as the only visible progress.

                                                                      How can I help on this project?

                                                                      • Ensure the team has sufficient capacity to review and merge the pending automated maintenance update, which keeps the module compliant with platform standards.
                                                                      • Assess whether additional developer resources are needed to maintain momentum on module enhancements and issue resolution.

                                                                      Contributors: project update bot (Project-Update-Bot)

                                                                      ---

                                                                      AI Search

                                                                      The AI Search module saw significant quality and reliability work during this period, with five issues opened that address data-loss risks and functional gaps in the search indexing pipeline.

                                                                      Two critical data-integrity problems were identified and documented. Progressive indexing can drop tail chunks describes a scenario where content is marked as fully indexed even though large portions of it were never embedded or made searchable. A separate issue, Clearing/resetting an index in 1x doesn't reset chunk-slicing progress so items silently re-index with zero embeddings, highlights that re-indexing operations can result in completely empty search results for previously indexed content. Both issues affect search accuracy and completeness—users may not find content they expect to be available.

                                                                      Work is also underway to support batch embeddings for improved indexing performance, which will reduce the time and cost required to index large content libraries. Two user-interface issues were logged: one around preview reporting and another concerning access to structured search result data.

                                                                      No code was merged during this period; all activity focused on issue documentation and scoping.

                                                                      How can I help on this project?

                                                                      • Prioritize resolution of the two data-loss issues to restore confidence in search completeness and accuracy.
                                                                      • Allocate development capacity to implement the batch embedding performance improvement, which will reduce infrastructure costs at scale.
                                                                      ---

                                                                      AI translate

                                                                      The AI Translate project saw significant planning activity this period, with four new strategic issues opened to address cost efficiency and architectural flexibility. No code was merged or committed in the past 24 hours.

                                                                      Two issues focus on reducing translation costs. Currently, the system sends one request per field, repeating the same instructions with each call—wasting tokens and budget. The batch translation proposal would consolidate multiple fields into a single request. Separately, a caching and deduplication feature would prevent re-translating unchanged content and eliminate duplicate work when the same text appears multiple times across a page.

                                                                      A refactoring proposal aims to make the module's translation workflow reusable across different interfaces—including a new AI agent-driven translation path—by centralizing shared logic rather than duplicating it across endpoints.

                                                                      One bug was reported: media translation fails with an error when attempting to translate media entities. A fix has been proposed.

                                                                      How can I help on this project?

                                                                      • Prioritize which cost-saving feature (batching or caching) delivers the highest return, and allocate resources accordingly to avoid duplicated effort.
                                                                      • Clarify strategic direction on agent integration and approve scope for the workflow refactor to prevent over-engineering.
                                                                      ---

                                                                      FlowDrop

                                                                      FlowDrop delivered two releases over the past 24 hours, focused on governance controls for automated workflows. Version 2.1.0 introduced a confirmation gate that allows workflow operators to pause and approve high-risk actions—such as publishing content, sending emails, or calling external services—before the system executes them. This safeguard reuses existing human-in-the-loop infrastructure and is backward-compatible with existing workflows.

                                                                      Work immediately began on version 2.2.0, which refines the confirmation model based on the principle that requiring approval is a governance decision, not a technical property of individual tools. The update introduces permission controls so organizations can centrally manage which actions require human oversight, regardless of context. Security improvements include redacting sensitive credentials from approval prompts, ensuring consent can only be granted once, and failing safely when the system cannot determine risk level. The confirmation gate feature that shipped in 2.1.0 has been closed, and planning continues on the governance settings refinement for the next release.

                                                                      How can I help on this project?

                                                                      • Review and approve the governance model being designed for 2.2.0 to ensure it aligns with organizational risk and compliance requirements.
                                                                      • Identify pilot teams who can test the confirmation controls with real workflows and provide feedback before wider rollout.

                                                                      Contributors: Shibin Das [17]

                                                                      ---

                                                                      Langfuse

                                                                      Development activity this period focused on expanding the module's capabilities for collecting user feedback. A merge request was opened to introduce feedback functionality, which will allow site administrators to capture and score user responses. This feature is being packaged as a separate submodule, giving implementers the flexibility to enable feedback collection only where needed. The work represents a significant enhancement to the module's value proposition, as feedback mechanisms are essential for improving content quality and user engagement.

                                                                      No commits were merged during this period, and the module continues its early-stage development without critical blocking issues.

                                                                      How can I help on this project?

                                                                      • Allocate review resources to evaluate and merge the pending feedback functionality, accelerating time to market for this capability.
                                                                      • Clarify the strategic roadmap and release timeline to help prioritize which features should advance toward a stable release.

                                                                      Contributors: Abhisek Mazumdar (abhisekmazumdar)

                                                                      ---

                                                                      AG-UI

                                                                      Activity this period focused on preparing the module for future compatibility. An automated process identified updates needed to align with Drupal 12, and a corresponding merge request was opened to address deprecated code usage. This work ensures the module can continue functioning as the Drupal platform evolves, reducing technical debt and preventing future maintenance burdens.

                                                                      Separately, progress continued on a larger effort to improve the Drupal Assistant implementation. The goal is to transition from a proof-of-concept demonstration to a production-ready component that could replace existing chat interfaces. This initiative aims to better integrate with the broader AI tooling ecosystem and improve the user experience for site administrators interacting with the assistant feature.

                                                                      No critical issues or blocking risks were identified during this period. The module continues to mature with routine maintenance and feature enhancement work underway.

                                                                      How can I help on this project?

                                                                      • Clarify strategic priority and timeline expectations for the Drupal Assistant enhancement to help the team sequence work effectively.
                                                                      • Ensure adequate resourcing is available to support both compatibility maintenance and feature development simultaneously.

                                                                      Contributors: project update bot (Project-Update-Bot)

                                                                      ======================================================================== ## [40] factcheck:tldr:executive ======================================================================== Layer-1 corrections: 0 Judge flags: 4 ======================================================================== ## [41] generate2026Capabilities ======================================================================== You are an editor writing a strategic section for a non-technical executive audience. The Drupal AI initiative has 8 planned capabilities for 2026. Your task is to read the module activity summaries below and explain how today's progress moves each capability forward — or note where there was no relevant progress today. Be concise and direct. Focus on what matters to a business leader: is progress happening, what is the next milestone, and are there any risks? When you describe progress on a capability, add inline citations using [N] where N is the reference number from the list below. You may cite multiple references per item, e.g. [1][3]. Place citations at the end of the relevant sentence, before the closing punctuation. Output an HTML fragment using exactly this structure:

                                                                      2026 Capabilities Progress

                                                                      1. Capability name — One or two sentences on how today's activity relates to this goal, or "No direct progress today" if nothing relevant occurred.
                                                                      Use only the 8 capabilities listed below, in the same order. Do not add, remove, or rename them. Do not output any text outside the

                                                                      and
                                                                        tags. --- 2026 CAPABILITIES --- 1. Page generation — Describe what you need and get a usable page, built from your actual design system components 2. Context management — A central place to define brand voice, style guides, audience profiles, and governance rules that AI can use 3. Background agents — AI that works without being prompted, responding to triggers and schedules while respecting editorial workflows 4. Design system integration — AI that builds with your components and can propose new ones when needed 5. Content creation and discovery — Smarter search, AI-powered optimization, and content drafting assistance 6. Advanced governance — Batch approvals, branch-based versioning, and comprehensive audit trails for AI changes 7. Intelligent website improvements — AI that learns from performance data, proposes concrete changes, and gets smarter over time through editorial review 8. Multi-channel campaigns — Create content for websites, social, email, and automation platforms from a single campaign goal --- REFERENCE LIST --- [1] Add thumbs-up and thumbs-down icons to the shared AI icon set (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586660 [2] Automated Drupal 12 compatibility fixes for ai 2.0.x-dev (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586525 [3] Document FunctionalJavascript test conventions and add CI check for ungrouped/unrecorded tests (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3582633 [4] AI Automator Token Replacement with removing unresolved Tokens (Checkbox?) (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586535 [5] Drupal 11.4 DeepChat Block does not work with Webprofiler enabled (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586615 [6] Introduce a modern AI Chatbot frontend library (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586571 [7] Provide proper support for "unconfigured" AI provider state (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3572645 [8] The Toolbar Chatbot runs the fold out animation on page reload (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3568246 [9] ai_ckeditor: streamGenerateContent causes 400 Bad Request with Gemini 2.x models (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586425 [10] Chatbot closes itself when adding a modal (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3499451 [11] Preserve HTML in streamed output (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586558 [12] Indexing breaks with custom SearchAPI DataSource (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3575992 [13] Accept input and output as typed interfaces in the AI request events (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3567673 [14] non streaming broken (fiber branch) (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586457 [15] Fix Translate Text Explorer form functionality (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3553353 [16] [AI Prompts] Update the Type Casing of Entities/Permissions (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3574417 [17] How does the provider notify of better models (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3575689 [18] Research: Open standard for saving one request (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3566569 [19] Provide AI usage reports in Drupal admin panel (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3535260 [20] AI Agents framework built on Symfony AI Agent (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1923 [21] Automated Project Update Bot fixes (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1673 [22] Issue #3586535: AI Automators strip unresolved tokens from prompts (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1884 [23] [META] 2026 AI Inside Roadmap to DrupalCon Rotterdam 2026 (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3586657 [24] Drupal AI UX meeting 3 August 2026 (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3586607 [25] [META] 2026 Outside-in / Innovation Roadmap (draft) (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3576908 [26] [Meta] AI Content Review Workflow (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3545606 [27] Start setting up AI Starterkit (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3569199 [28] Create documentation on how to create issues that are testable on DrupalForge (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3583362 [29] GitLab workflow automation for AI Initiative repos (exploration + rollout) (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3586474 [30] UX: Install and investigate WordPress 7.x for new AI features (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3586595 [31] Create AI Validations Recipe (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3585699 [32] Automated Drupal 12 compatibility fixes for ai_integration_eca 1.0.x-dev (ai_integration_eca, Issue) — https://git.drupalcode.org/project/ai_integration_eca/-/work_items/3585018 [33] Automated Project Update Bot fixes (ai_integration_eca, MR) — https://git.drupalcode.org/project/ai_integration_eca/-/merge_requests/13 [34] Run more than one test group in Bulk - Test Collections? (ai_agents_test, Issue) — https://git.drupalcode.org/project/ai_agents_test/-/work_items/3541324 [35] Image Embeddings (gemini_provider, Issue) — https://git.drupalcode.org/project/gemini_provider/-/work_items/3588392 [36] Implement getSupportedCapabilities method in Provider class (gemini_provider, Issue) — https://git.drupalcode.org/project/gemini_provider/-/work_items/3589184 [37] Add support for batch embeddings (gemini_provider, Issue) — https://git.drupalcode.org/project/gemini_provider/-/work_items/3589183 [38] #3569845: Add Oauth Scope Validation (mcp, MR) — https://git.drupalcode.org/project/mcp/-/merge_requests/44 [39] Automated Drupal 12 compatibility fixes for ai_agents 1.4.x-dev (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3586038 [40] Add limits on how often a tool can run (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3547995 [41] Let an agent use a role when running a tool (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3518167 [42] [DISCUSS] Make it possible to create tool instances (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3552038 [43] Allow agents to have permissions, user or a role (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3586019 [44] AI Agent entity form should reject machine names that collide with existing code-plugin IDs (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3586026 [45] Make it possible to restrict the order of tools during agent executions (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3560681 [46] Use the `ai_json_schema` editor for the AI Agent structured-output schema field (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3586042 [47] feat: Per-tool approval mode (pre-approved / approve-once / always) with loop pause-resume (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3586020 [48] Allow callers to supply additional tags for the chat calls made by AiAgentEntityWrapper (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3586055 [49] Research Scratchboards (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3576571 [50] Use streamed chat for agents (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3538174 [51] Give a parent agent possibility to forward request as is (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3550098 [52] Create implementation of ShortTermMemory (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3546411 [53] Automated Project Update Bot fixes (ai_agents, MR) — https://git.drupalcode.org/project/ai_agents/-/merge_requests/282 [54] fix: #3582961 fail closed when tool input is invalid or missing (tool, MR) — https://git.drupalcode.org/project/tool/-/merge_requests/113 [55] Resolve "Create a skill for generating Tool plugins (best practices, how-to, placement)" (tool, MR) — https://git.drupalcode.org/project/tool/-/merge_requests/93 [56] fix: #3582960 validate every multiple input item (tool, MR) — https://git.drupalcode.org/project/tool/-/merge_requests/112 [57] Dependency Dashboard (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591657 [58] PHPStan failing on global $argv usage (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591931 [59] Allow per-node override of Content Template via checkbox in node selector (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3567225 [60] Canvas AI: Cover the error path that clears stored agent state (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591927 [61] Canvas AI: Add Playwright coverage for the component agent hop loop (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591926 [62] Canvas AI: Add a Drupal Canvas Agent that answers general questions (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591924 [63] Canvas AI: Research how a user can cancel a running chat turn (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591923 [64] Canvas AI: Add end-to-end kernel coverage for the dev page builder agent (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591922 [65] Canvas AI: Add a dev page builder agent and wire the placement tools (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591921 [66] Canvas AI: Add a catalog-only parameter to the get_component_context tool (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591920 [67] Canvas AI: Run the agent selected in configuration instead of a hardcoded one (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591919 [68] Canvas AI: Expose Props of Blocks to the Agent (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3569120 [69] Canvas AI: Client-side orchestration loop for Canvas AI(POC) (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591615 [70] Canvas AI: Add Tools dropdown to chat UI (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591856 [71] Canvas AI: page builder discards the whole build when the LLM names a region that does not exist (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591876 [72] fix(deps): update npm minor and patch (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1238 [73] fix: #3591931 Do not rely on $argv being a global (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1485 [74] bug: #3591839 Preserve the query string when stripping the language prefix; a... (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1387 [75] task: #3567225 Make the component tree loader extensible (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/948 [76] Pre-1.0 documentation, trust, and compatibility follow-up to issue 3586363 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586382 [77] Remove max_items context limit and rely on the token budget (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586378 [78] Document Purpose field guidance for conditional subcontext selection (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586390 [79] [Meta] Prepare CCC for Inside AI Rotterdam demo (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586386 [80] Create CCC recipe for Inside Rotterdam demo (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586385 [81] Add context item Priority field and use it for selection ordering (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586376 [82] Rename entity bundle and target entity scope plugins for better DX (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586276 [83] Clarify and stabilize the scope plugin extension boundary for 1.0 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586392 [84] Introduce more granular permissions to CCC (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3563036 [85] Create graphic to explain how context scope works (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3571104 [86] Assess possible 1.0 and 1.1 features and UX/DX improvements following TDT questions (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586363 [87] Align scope scoring, language service, and contextual selection behavior (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586388 [88] Sprint 16 CCC roadmap updates, sprint planning, and issue triage (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586368 [89] Recruit additional CCC beta testers (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586235 [90] Update CCC maintainers in README.md (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586366 [91] Drupal 10 does not invoke attribute-based theme and Scheduler hooks (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586344 [92] Add content type context scope for MVP (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3570934 [93] [Spike] Complete scope plugin persistence API: manager orchestration, target entity encapsulation, and plugin-driven admin/selection (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586243 [94] Review and update CCC permissions before rc1 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586358 [95] Document the AI Context role and permission matrix for 1.0 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586395 [96] Automated Drupal 12 compatibility fixes for ai_context 1.0.x-dev (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586269 [97] Resolve `use_default` provider config for conditional subcontext selection (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586391 [98] CCC QA scripts for 1.0 testing (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586226 [99] Install `target_entities` field storage when Dynamic Entity Reference is enabled on existing sites (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586375 [100] Test current conditional subcontext selection before changing the prompt (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586351 [101] Review and document context selection ranking factors before 1.0 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586365 [102] Redesign selection modes as a nested Minimal / Relevant / Broad ladder and remove match_all (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586394 [103] Create multi-vocabulary taxonomy scope plugin (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586237 [104] [Meta] CCC MVP 1.0 roadmap (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3567798 [105] Create CCC beta3 and beta4 and status update video (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586333 [106] Implement plugin-based generic context consumers and unified consumer configuration (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586346 [107] [Meta] Prepare demo content and demo context items for the CCC to show how it works (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586339 [108] Clarify scope eligibility, ranking, and limits in UI help and documentation (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586348 [109] Pre-1.0 context selection reliability and diagnostics follow-up to issue 3586363 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586383 [110] Persist context-item token counts and show token-budget usage in CCC UI (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586379 [111] QA team start testing CCC to get familiar with functionality and create QA plan (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586342 [112] "Global context" checkbox description renders a literal
                                                                        instead of a line break (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586369 [113] Issue #3586378: Remove max_items context limit and rely on token budget. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/244 [114] Issue #3586383: Pre-1.0 context selection reliability and diagnostics follow-up. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/252 [115] Issue #3586382: Pre-1.0 documentation, trust, and compatibility follow-up. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/253 [116] Issue #3586376: Add context item priority field and selection tie-breakers. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/245 [117] Issue #3586276: Rename entity bundle and target entity scope plugins for better DX (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/195 [118] Issue #3586390: Document purpose guidance for conditional subcontext. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/246 [119] Issue #3586392: Clarify and stabilize scope plugin extension boundary for 1.0. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/249 [120] Issue #3586243: Complete scope plugin API before RC1: persistence, form encapsulation, validation, capability flags, and documented interface sections. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/164 [121] Issue #3586395: Document the AI Context role and permission matrix for 1.0. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/254 [122] Issue #3586391: Resolve use_default provider for conditional subcontext. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/247 [123] Issue #3586375: Install target_entities storage when DER is enabled later. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/251 [124] Issue #3586369: Global context checkbox description renders a literal
                                                                        instead of a line break. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/240 [125] Issue #3586237: Add multi-vocabulary taxonomy scope plugin. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/250 [126] Issue #3586379: Persist token counts and show budget usage in CCC UI. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/248 [127] Automated Project Update Bot fixes (ai_ckeditor, MR) — https://git.drupalcode.org/project/ai_ckeditor/-/merge_requests/10 [128] Progressive indexing can drop tail chunks (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584032 [129] Batch embeddings for improved indexing performance (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584024 [130] Preview reports first batch as total chunks (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584033 [131] Clearing/resetting an index in 1x doesn't reset chunk-slicing progress so items silently re-index with zero embeddings (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584035 [132] RagTool::execute() should expose structured per-result data and check entity access (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584031 [133] Aggregate a node's translatable field-columns into a single chat request (opt-in batch translation) (ai_translate, Issue) — https://git.drupalcode.org/project/ai_translate/-/work_items/3585527 [134] Refactor translation workflow to support Tool API and agent-driven translation (ai_translate, Issue) — https://git.drupalcode.org/project/ai_translate/-/work_items/3585523 [135] InvalidArgumentException: Invalid translation language (und) when translating media entities (ai_translate, Issue) — https://git.drupalcode.org/project/ai_translate/-/work_items/3585532 [136] Feature: Translation result caching and cross-field deduplication (ai_translate, Issue) — https://git.drupalcode.org/project/ai_translate/-/work_items/3585529 [137] Add a requires_confirmation flag to flowdrop_node_type, wired to the existing interrupt/HITL engine (flowdrop, Issue) — https://git.drupalcode.org/project/flowdrop/-/work_items/3592383 [138] Confirmation is governance, not a processor property: replace the requires_confirmation tri-state with a confirmation settings map (flowdrop, Issue) — https://git.drupalcode.org/project/flowdrop/-/work_items/3592384 [139] Issue #3548465: Add createScore() for feedback and a langfuse_feedback submodule (langfuse, MR) — https://git.drupalcode.org/project/langfuse/-/merge_requests/6 [140] Automated Drupal 12 compatibility fixes for agui 1.0.x-dev (agui, Issue) — https://git.drupalcode.org/project/agui/-/work_items/3590037 [141] [META] Improve Drupal Assistant Implementation (agui, Issue) — https://git.drupalcode.org/project/agui/-/work_items/3572388 [142] Automated Project Update Bot fixes (agui, MR) — https://git.drupalcode.org/project/agui/-/merge_requests/30 --- TODAY'S MODULE SUMMARIES ---

                                                                        AI (Artificial Intelligence)

                                                                        Development activity over the past 24 hours centered on expanding the module's strategic capabilities and addressing user experience improvements across the chatbot and content generation features.

                                                                        A significant new AI Agents framework was introduced, built on Symfony AI components. This addition enables more sophisticated automation workflows with support for controls that can pause execution for human approval, providing organizations with better governance over AI-driven processes. The framework includes configurable agents and integration with command-line tools for testing and management.

                                                                        Several user interface refinements are in progress. Work continues on standardizing feedback controls across the ecosystem through a shared icon set for thumbs-up and thumbs-down, which will create visual consistency across different AI features. An evaluation of modern chatbot frontend libraries is underway to reduce technical coupling and improve customization options for organizations deploying conversational interfaces.

                                                                        Several compatibility and functionality issues received attention, including problems with chatbot functionality in Drupal 11.4, streaming errors with newer Gemini models, and HTML preservation during content streaming. A merge request addressing token replacement behavior is under review to prevent unnecessary data from being sent to AI services.

                                                                        How can I help on this project?

                                                                        Consider prioritizing resources for the chatbot library evaluation to inform architectural decisions before broader adoption. Ensure testing capacity is available for the new Agents framework as organizations will need clear documentation and examples before deploying approval-gated automation workflows in production environments.

                                                                        Contributors: harivansh sharma (harivansh), project update bot (Project-Update-Bot), Rodel Duterte (rduterte)

                                                                        ---

                                                                        Drupal AI Initiative

                                                                        Activity this period focused on planning and coordination for the September demonstration at DrupalCon Rotterdam. The team is working toward a single integrated site that will showcase AI search, content review, translation, editor chat, and quality guardrails working together on multilingual content. The goal is to let visitors experience these capabilities as a unified system rather than separate features, with the ability to launch the demonstration themselves in seconds.

                                                                        Progress continued on the AI Content Review Workflow, which was closed during this period. Work continues on the supporting recipe and documentation to make these features easy to install and configure. Planning discussions also covered compliance requirements, including work needed for EU AI Act disclosure obligations.

                                                                        Several coordination and process improvements are underway, including exploration of GitLab workflow automation to reduce manual maintenance overhead, and competitive research into WordPress 7.x AI features to inform design decisions. The initiative is also examining how to streamline testing across multiple development modules simultaneously.

                                                                        How can I help on this project?

                                                                        • Ensure the team has access to higher-education content partnerships or sample datasets needed for the Rotterdam demonstration site
                                                                        • Support outreach to potential users or partners who could provide feedback on the integrated demonstration before the conference
                                                                        ---

                                                                        AI Integration - ECA

                                                                        Work has begun on preparing the module for compatibility with the next major version of the platform (Drupal 12). An automated process has identified areas where the module uses features that will no longer be supported, and a merge request with compatibility fixes has been prepared for review. This proactive work addresses technical debt before it becomes a problem, ensuring the module will continue to function when the platform evolves. The changes are ready for evaluation but have not yet been integrated.

                                                                        The compatibility tracking issue remains open and will be updated as further adjustments are identified. This is standard maintenance work for a module in active development.

                                                                        How can I help on this project?

                                                                        Consider allocating developer time to review and test the pending compatibility updates, ensuring they meet quality standards before integration. If this module is strategically important, confirm ongoing maintenance support is resourced through the next platform release cycle.

                                                                        Contributors: project update bot (Project-Update-Bot)

                                                                        ---

                                                                        AI Agents Test

                                                                        No significant development activity occurred during this period. The project continues to track an open enhancement request for Run more than one test group in Bulk - Test Collections?, which would allow users to execute multiple test groups at once rather than running them individually. This capability would support faster evaluation of different models and streamline automated testing workflows, helping teams compare performance across various configurations more efficiently.

                                                                        The module remains in active development as part of the AI Initiative Sprint, with no commits or merged changes in the last 24 hours.

                                                                        How can I help on this project?

                                                                        • Confirm whether bulk test execution is a priority feature that should be resourced and scheduled for delivery.
                                                                        • Ensure the team has dedicated capacity to work on enhancements beyond the current sprint commitments.
                                                                        ---

                                                                        Gemini Provider

                                                                        The Gemini Provider module saw continued planning activity focused on expanding its embedding capabilities and improving compatibility with the broader AI module ecosystem. Three issues were updated during the period, all related to ongoing sprint work.

                                                                        Work is underway to add support for batch embeddings, which would allow multiple pieces of content to be processed together more efficiently. Progress on exposing provider capabilities continues, ensuring the module can properly communicate what features it supports to other parts of the system. Additionally, planning for image embeddings is ongoing, which would enable searching and indexing based on visual content rather than just text—a capability that distinguishes Gemini from most other AI providers.

                                                                        No code was merged during this period. The work remains in the development and review stages, which is typical for active feature development in an evolving module.

                                                                        How can I help on this project?

                                                                        • Ensure the team has access to subject matter experts who can validate whether image embedding capabilities meet real user needs and business use cases.
                                                                        • Clarify priority between batch processing efficiency improvements and new image features to help the team sequence work effectively.
                                                                        ---

                                                                        Model Context Protocol

                                                                        The Model Context Protocol module saw development progress during this period focused on security and access control. A merge request addressing OAuth scope validation was opened, introducing controls to ensure proper authorization checks when the module interacts with external systems or resources. This work strengthens the module's ability to enforce permissions and prevent unauthorized access, which is important for protecting sensitive content and maintaining compliance in enterprise environments.

                                                                        The module remains in active development with work continuing on foundational security features. As an early-stage project, ongoing development activity like this is expected and healthy.

                                                                        How can I help on this project?

                                                                        • Ensure the development team has access to security review expertise to validate OAuth implementation patterns before release
                                                                        • Clarify the timeline and business priority for reaching a stable release to help focus development efforts

                                                                        Contributors: Shubham Goel (shubhamgoel)

                                                                        ---

                                                                        AI Agents

                                                                        The reporting period saw continued work on governance, safety, and multi-agent orchestration capabilities. Ten existing feature and improvement issues were updated, primarily around permission models, tool execution controls, and agent coordination.

                                                                        Key themes include efforts to allow agents to adopt specific roles or permissions when executing tools (decoupling agent authority from end-user sessions), mechanisms to limit how often a tool can run (preventing infinite loops or runaway behaviour), and a new approval-mode system that would let administrators gate sensitive tool calls with human review before execution. Work is also progressing on multi-agent memory management, enabling parent agents to pass context efficiently to child agents without losing fidelity or incurring excessive token costs.

                                                                        A new bug was identified around agent machine-name validation: the system currently allows administrators to create agents whose identifiers collide with code-defined plugins, causing silent failures. An automated compatibility merge request for Drupal 12 was opened but not yet merged.

                                                                        Overall, the project is advancing steadily toward production-grade agent orchestration with better safety controls and clearer operational boundaries. No blocking issues were reported during the period.

                                                                        How can I help on this project?

                                                                        • Prioritise resourcing for the permission and role model work, which underpins secure autonomous agent deployments.
                                                                        • Review and approve the proposed tool approval-mode design to unblock development of human-in-the-loop safeguards.

                                                                        Contributors: project update bot (Project-Update-Bot)

                                                                        ---

                                                                        Tool API

                                                                        Three merge requests addressing input validation and developer tooling were opened during this period.

                                                                        Two security-oriented improvements were prepared to strengthen how the system handles invalid or incomplete tool inputs. The first ensures that validation now checks every item when multiple values are provided, rather than stopping at the first error—meaning users will see all problems at once instead of fixing issues one at a time. The second change makes the system fail safely when tool input is invalid or missing, denying access rather than exposing errors or allowing unintended behavior.

                                                                        A third request introduces tooling to help developers generate Tool plugins following best practices, which should reduce onboarding time and improve consistency across implementations.

                                                                        All three changes remain under review. No issues were updated and no code was merged during the period, indicating the project is in an active development phase with work progressing toward integration.

                                                                        How can I help on this project?

                                                                        • Ensure reviewer capacity is available to evaluate and merge the three open validation and tooling improvements.
                                                                        • Clarify timelines or priority for stabilizing input handling ahead of broader adoption.

                                                                        Contributors: Alex Urevick-Ackelsberg (alexua), Marcus Johansson (Marcus_Johansson)

                                                                        ---

                                                                        Drupal Canvas

                                                                        Development activity this period focused on artificial intelligence capabilities and infrastructure improvements. Nine new issues were opened to outline the architecture for a multi-agent AI system that will enable the platform to build pages, create components, and answer user questions through a conversational interface. The work establishes a foundation for a tool selection interface that lets users direct which AI capability handles their request, rather than relying solely on automated routing.

                                                                        A merge request addressing language prefix handling was opened, fixing an issue where users editing content in multilingual configurations could encounter broken redirects or blank screens. Separately, dependency management infrastructure continued routine updates.

                                                                        The AI work represents a significant evolution in how users will interact with the page building system. Currently, timeout limitations on hosted platforms prevent complex operations from completing, and any validation error forces a complete rebuild. The planned architecture breaks work into smaller requests that can provide progressive feedback and recover from partial failures.

                                                                        How can I help on this project?

                                                                        • Provide guidance on whether the AI chat interface should expose all available tools to users immediately, or introduce them progressively as the feature matures and testing validates their reliability.
                                                                        • Ensure hosting platform constraints (timeout limits, rate limits) are documented and shared with the development team to inform architectural decisions around request chunking.

                                                                        Contributors: **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Fons Vandamme (f0ns), Rajab Natshah (RajabNatshah), Tim Plunkett (tim.plunkett), AKHIL BABU (AkhilBabu)

                                                                        ---

                                                                        Context Control Center (CCC)

                                                                        Progress this period focused on stabilizing documentation, guidance, and developer experience ahead of the 1.0 release. Three substantial pieces of work were merged: comprehensive pre-release documentation covering security guidance, API annotation, and trust boundaries; improved guidance on writing effective "Purpose" descriptions for conditional subcontext features, helping authors understand how models use this field to decide which context applies; and a developer experience improvement that renamed two scope plugins to better reflect their actual use—clarifying that one applies to entire entity types rather than bundles, and the other to individual entity items rather than generic targets.

                                                                        Planning activity continued around the upcoming Inside AI Rotterdam demo, including the design of a recipe to ship university-specific context and wire consumer subscriptions for the demo site. Several open issues are now being refined to address selection behavior, token budgets, permissions documentation, and quality assurance readiness. Work to remove the overlapping "max items" limit in favor of the more accurate token budget control remains in progress, as does the addition of a priority field to give editors explicit control over selection order when multiple items compete.

                                                                        The project is in active beta. Multiple merge requests covering permissions, scope behavior alignment, and conditional subcontext configuration are under review. Quality assurance planning has begun to prepare for pre-1.0 testing, and beta testing feedback is driving refinements to UI help text and selection transparency.

                                                                        How can I help on this project?

                                                                        • Confirm resourcing and timeline commitments for the Inside AI Rotterdam demo, particularly recipe content creation and demo-site integration testing.
                                                                        • Prioritize internal review bandwidth for in-progress merge requests covering permissions, scope alignment, and token budget UI—several are prerequisites for the stable release.

                                                                        Contributors: Juan Correa (jucs7), Kristen Pol (kepol) [2], Tamas Balog (tbalog) [1]

                                                                        ---

                                                                        AI CKEditor

                                                                        The AI CKEditor module saw minimal activity over the past 24 hours. A maintenance update was opened to apply automated fixes generated by the project's update tooling. This type of work helps keep the codebase aligned with current Drupal standards and prevents technical debt from accumulating. The update has not yet been reviewed or integrated.

                                                                        No issues were actively discussed or resolved during this period, and no code changes were finalized. This represents a quiet day for the module with routine maintenance as the only visible progress.

                                                                        How can I help on this project?

                                                                        • Ensure the team has sufficient capacity to review and merge the pending automated maintenance update, which keeps the module compliant with platform standards.
                                                                        • Assess whether additional developer resources are needed to maintain momentum on module enhancements and issue resolution.

                                                                        Contributors: project update bot (Project-Update-Bot)

                                                                        ---

                                                                        AI Search

                                                                        The AI Search module saw significant quality and reliability work during this period, with five issues opened that address data-loss risks and functional gaps in the search indexing pipeline.

                                                                        Two critical data-integrity problems were identified and documented. Progressive indexing can drop tail chunks describes a scenario where content is marked as fully indexed even though large portions of it were never embedded or made searchable. A separate issue, Clearing/resetting an index in 1x doesn't reset chunk-slicing progress so items silently re-index with zero embeddings, highlights that re-indexing operations can result in completely empty search results for previously indexed content. Both issues affect search accuracy and completeness—users may not find content they expect to be available.

                                                                        Work is also underway to support batch embeddings for improved indexing performance, which will reduce the time and cost required to index large content libraries. Two user-interface issues were logged: one around preview reporting and another concerning access to structured search result data.

                                                                        No code was merged during this period; all activity focused on issue documentation and scoping.

                                                                        How can I help on this project?

                                                                        • Prioritize resolution of the two data-loss issues to restore confidence in search completeness and accuracy.
                                                                        • Allocate development capacity to implement the batch embedding performance improvement, which will reduce infrastructure costs at scale.
                                                                        ---

                                                                        AI translate

                                                                        The AI Translate project saw significant planning activity this period, with four new strategic issues opened to address cost efficiency and architectural flexibility. No code was merged or committed in the past 24 hours.

                                                                        Two issues focus on reducing translation costs. Currently, the system sends one request per field, repeating the same instructions with each call—wasting tokens and budget. The batch translation proposal would consolidate multiple fields into a single request. Separately, a caching and deduplication feature would prevent re-translating unchanged content and eliminate duplicate work when the same text appears multiple times across a page.

                                                                        A refactoring proposal aims to make the module's translation workflow reusable across different interfaces—including a new AI agent-driven translation path—by centralizing shared logic rather than duplicating it across endpoints.

                                                                        One bug was reported: media translation fails with an error when attempting to translate media entities. A fix has been proposed.

                                                                        How can I help on this project?

                                                                        • Prioritize which cost-saving feature (batching or caching) delivers the highest return, and allocate resources accordingly to avoid duplicated effort.
                                                                        • Clarify strategic direction on agent integration and approve scope for the workflow refactor to prevent over-engineering.
                                                                        ---

                                                                        FlowDrop

                                                                        FlowDrop delivered two releases over the past 24 hours, focused on governance controls for automated workflows. Version 2.1.0 introduced a confirmation gate that allows workflow operators to pause and approve high-risk actions—such as publishing content, sending emails, or calling external services—before the system executes them. This safeguard reuses existing human-in-the-loop infrastructure and is backward-compatible with existing workflows.

                                                                        Work immediately began on version 2.2.0, which refines the confirmation model based on the principle that requiring approval is a governance decision, not a technical property of individual tools. The update introduces permission controls so organizations can centrally manage which actions require human oversight, regardless of context. Security improvements include redacting sensitive credentials from approval prompts, ensuring consent can only be granted once, and failing safely when the system cannot determine risk level. The confirmation gate feature that shipped in 2.1.0 has been closed, and planning continues on the governance settings refinement for the next release.

                                                                        How can I help on this project?

                                                                        • Review and approve the governance model being designed for 2.2.0 to ensure it aligns with organizational risk and compliance requirements.
                                                                        • Identify pilot teams who can test the confirmation controls with real workflows and provide feedback before wider rollout.

                                                                        Contributors: Shibin Das [17]

                                                                        ---

                                                                        Langfuse

                                                                        Development activity this period focused on expanding the module's capabilities for collecting user feedback. A merge request was opened to introduce feedback functionality, which will allow site administrators to capture and score user responses. This feature is being packaged as a separate submodule, giving implementers the flexibility to enable feedback collection only where needed. The work represents a significant enhancement to the module's value proposition, as feedback mechanisms are essential for improving content quality and user engagement.

                                                                        No commits were merged during this period, and the module continues its early-stage development without critical blocking issues.

                                                                        How can I help on this project?

                                                                        • Allocate review resources to evaluate and merge the pending feedback functionality, accelerating time to market for this capability.
                                                                        • Clarify the strategic roadmap and release timeline to help prioritize which features should advance toward a stable release.

                                                                        Contributors: Abhisek Mazumdar (abhisekmazumdar)

                                                                        ---

                                                                        AG-UI

                                                                        Activity this period focused on preparing the module for future compatibility. An automated process identified updates needed to align with Drupal 12, and a corresponding merge request was opened to address deprecated code usage. This work ensures the module can continue functioning as the Drupal platform evolves, reducing technical debt and preventing future maintenance burdens.

                                                                        Separately, progress continued on a larger effort to improve the Drupal Assistant implementation. The goal is to transition from a proof-of-concept demonstration to a production-ready component that could replace existing chat interfaces. This initiative aims to better integrate with the broader AI tooling ecosystem and improve the user experience for site administrators interacting with the assistant feature.

                                                                        No critical issues or blocking risks were identified during this period. The module continues to mature with routine maintenance and feature enhancement work underway.

                                                                        How can I help on this project?

                                                                        • Clarify strategic priority and timeline expectations for the Drupal Assistant enhancement to help the team sequence work effectively.
                                                                        • Ensure adequate resourcing is available to support both compatibility maintenance and feature development simultaneously.

                                                                        Contributors: project update bot (Project-Update-Bot)

                                                                        ======================================================================== ## [42] factcheck:capabilities:executive ======================================================================== Layer-1 corrections: 0 Judge flags: 2