# Prompt log — 24h 2026-06-25 ======================================================================== ## [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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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), Ahmad Khalil (ahmad-khalil-imagex), Ann Mary Sruthy (annmarysruthy), Arnaud Willame (arwillame), Artem Dmitriiev (a.dmitriiev), Dimitar Rupov (mrupal), Eric Homanchuk (erichomanchuk), Jérôme Tchania (codeitwisely) [1], m4olivei, Ricardo Castañeda (cadence96), Sujal Kshatri (sujal_31), Wolfgang Ziegler (fago)". 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). ### [Uninstalling ai_ckeditor leaves stale toolbar items in editor.editor.* configuration](https://git.drupalcode.org/project/ai/-/work_items/3586570) State: opened | Updated: 2026-06-25 | Author: Ricardo Castañeda (cadence96) | Assigned: Ricardo Castañeda (cadence96) | Labels: aiCkeditor, category::bug Description: ## Summary When `ai_ckeditor` is uninstalled, it does not remove its toolbar button from existing CKEditor 5 editor configurations (`editor.editor.*`). If the **AI Balloon Menu** has been added to a text format toolbar, the configuration still references the removed plugin after uninstall. As a result, the text format configuration page can no longer build the toolbar correctly. ## Steps to reproduce 1. Install `ai_ckeditor`. 2. Go to **Configuration → Content authoring → Text formats and editors**. 3. Edit a CKEditor 5 text format (for example **Full HTML**). 4. Add the **AI Balloon Menu*… ### [Config action to verify if any vector database is there and it is setup](https://git.drupalcode.org/project/ai/-/work_items/3586517) State: opened | Updated: 2026-06-25 | Author: Artem Dmitriiev (a.dmitriiev) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, aiCoreModule, category::feature Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1660 [Issue #3586517: Check if any Vdb provider is setup](https://git.drupalcode.org/project/ai/-/merge_requests/1660) | State: opened | Author: Artem Dmitriiev (a.dmitriiev), 75 diff lines Description: ## Summary At the moment there is a config action `verifySetupAi` that is able to check whether the specific vector database provider is there in the system and it is setup. This is possible with `vdb_provider_is_setup` payload. In the real use case the plugin name of the vdb provider is not that relevant, as it is needed to know that any vdb provider is there and it is properly configured (setup) to create a search api server. One (any) would be enough without actually specifying which one. ## Problem There is no way at the moment to check that any vdb provider is installed and configured… ### [Batch embeddings for improved indexing performance](https://git.drupalcode.org/project/ai/-/work_items/3568648) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: Sergiu Nagailic (Nikro) | Labels: AI Initiative Sprint, AI Product Development, aiSearch, candidate 1.5.x Description: >>> [!note] Migrated issue Reported by: [paulsheldrake](https://www.drupal.org/user/1350686) Related to !1126 >>> [Tracker] Update Summary: Increase embeddings performance Short Description: Support batching for embeddings so multile chunks can be converted and inserted at a time instead of doing each chunk sequentially. Check-in Date: MM/DD/YYYY Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Indexing is slow for vector DBs Proposed resolution Add batching so more chunks can be process in one go. This MR updates the underlying classes t… ### [Improve ai_ckeditor UX when no provider modules are installed](https://git.drupalcode.org/project/ai/-/work_items/3586549) State: opened | Updated: 2026-06-25 | Author: Ricardo Castañeda (cadence96) | Assigned: unassigned | Labels: Needs UX review, category::feature, priority::minor, state::needsReview Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1701 [feat(ai_ckeditor): warn users when no AI provider is installed in the CKEditor settings tab](https://git.drupalcode.org/project/ai/-/merge_requests/1701) | State: opened | Author: Ricardo Castañeda (cadence96), 56 diff lines Description: ## Summary `ai_ckeditor` currently assumes that at least one provider module is installed. If no provider module (such as `ai_provider_openai`) is available, the CKEditor AI functionality does not work and may result in confusing behavior or errors. The module could provide clearer feedback to site builders or explicitly require provider modules. ## Problem `ai_ckeditor` can be enabled without installing any provider modules. From a site builder perspective, the module appears to be configured correctly because the CKEditor buttons are available, but attempting to use them fails. This c… ### [Add "throttle API requests" control?](https://git.drupalcode.org/project/ai/-/work_items/3561243) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiCoreModule, category::feature, priority::normal, state::accepted Description: >>> [!note] Migrated issue Reported by: [ultimike](https://www.drupal.org/user/51132) >>> [Tracker] Update Summary: Would a "throttle" control be useful? Short Description: Being able to control how quickly API calls are sent to LLMs might help users on lower tiers avoid hitting rate limits. Check-in Date: MM/DD/YYYY Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Would it make sense to add some type of "Throttle" control that allows site-builder to limit how many (or how often) LLM API calls are made? While experimenting with AI Agents, I… ### [[Discuss] Shift focus from provider plugins to operation type plugins in AI Core](https://git.drupalcode.org/project/ai/-/work_items/3559800) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::feature, discussion, priority::normal, state::closed Description: >>> [!note] Migrated issue Reported by: [a.dmitriiev](https://www.drupal.org/user/3235287) >>> [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 While investigating what approaches could be applied for #3552919: Remove ProviderProxy and use template method pattern, I had a thought, that AI Core is mainly focused on the provider plugins and providers themselves. As AI Core is a framework, I… ### [Plugin shouldn't show any fields if no text is selected](https://git.drupalcode.org/project/ai/-/work_items/3557016) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiCkeditor, category::feature, priority::normal, state::needsWork Description: >>> [!note] Migrated issue Reported by: [damienmckenna](https://www.drupal.org/user/108450) Related to !1117 >>> Problem/Motivation When opening a ckeditor plugin, if no text is selected the UI shows the "You must select some text before you can summarize it." message, but then will also show some of the other fields from the specific plugin, e.g. the Tone plugin shows the "Choose tone" selector. Proposed resolution Don't show anything in the ckeditor plugin popup (particularly for the Tone plugin) if no text has been selected. Remaining tasks Don't show anything in the ckeditor plugin po… ### [Tools UI overview page does not load](https://git.drupalcode.org/project/ai/-/work_items/3579979) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiCoreModule, category::bug, priority::major, state::accepted Description: >>> [!note] Migrated issue Reported by: [scott_euser](https://www.drupal.org/user/3267594) Related to !1443 !1329 >>> [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 If you enable AI mode + Tools module + MCP without making other changes, then /admin/config/ai/tools leads to The website encountered an unexpected error. Try again later.InvalidArgumentException: The opener ID parameter i… ### [Add a setup-guardrails agent skill to configure guardrails, guardrail sets, and global guardrails](https://git.drupalcode.org/project/ai/-/work_items/3586561) State: opened | Updated: 2026-06-25 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | Labels: aiCoreModule, category::task, priority::normal, state::needsReview Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1724 [task: #3586561 Add a setup-guardrails agent skill to configure guardrails,...](https://git.drupalcode.org/project/ai/-/merge_requests/1724) | State: opened | Author: Ann Mary Sruthy (annmarysruthy), 1682 diff lines Description: ## Description The AI module already ships a `create-guardrail-plugin` agent skill that *authors* new guardrail plugin classes. There is, however, no equivalent skill for *operating* the guardrails that already exist — i.e. configuring them on a running site. Site builders and agents currently have to drive the admin UI by hand to wire up guardrails, guardrail sets, and the global guardrail list. This task adds a `setup-guardrails` skill (sibling of `create-guardrail-plugin`, under `ai/.agents/skills/`) that configures guardrails rather than creating them, driven through the [Tool module](ht… ### [Move out AI Content Suggestions](https://git.drupalcode.org/project/ai/-/work_items/3552885) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: Needs UX review, aiContentSuggestions, beta blocker, category::feature Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !1042 !1064 >>> --- AI TRACKER METADATA --- Update Summary: Move out AI Content Suggestions Check-in Date: MM/DD/YYYY (US format) [When we should see progress/get an update] Due Date: MM/DD/YYYY (US format) [When the issue should be fully completed] Blocked by: [#XXXXXX] (New issues on new lines) Additional Collaborators: @username1, @username2 AI Tracker found here: https://www.drupalstarforge.ai/ --- END METADATA --- Problem/Motivation We are moving out AI Content Suggestions for 2.… ### [AI CKEditor: Hardcoded “summarize” message shown for all plugins when no text is selected](https://git.drupalcode.org/project/ai/-/work_items/3575346) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiCkeditor, category::bug, priority::normal, state::needsWork Description: >>> [!note] Migrated issue Reported by: [annmarysruthy](https://www.drupal.org/user/3664314) Related to !1240 >>> [Tracker] Update Summary: [One-line status update for stakeholders] Short Description: All AI CKEditor plugins display "You must select some text before you can summarize it" even when the active plugin is Translate, Tone, or SpellFix.[One-line issue summary for stakeholders] Check-in Date: 02/24/2026 Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Most AI CKEditor plugins (e.g., Translate, Tone, SpellFix, etc.) require selec… ### [[Discuss] Consider adding Agents.md](https://git.drupalcode.org/project/ai/-/work_items/3573186) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::plan, discussion, priority::normal, state::accepted Description: >>> [!note] Migrated issue Reported by: [valthebald](https://www.drupal.org/user/239562) >>> [Tracker] Update Summary: Consider adding Agents.md Short Description: Consider adding Agents.md Check-in Date: 02/12/2026 Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Inspired by discussion in the core issue #3568936: Embrace the chaos, add a couple of AGENTS.md file to core. That one was closed after heated discussion as "works as designed" (i.e. no Agents.md will be added to core for now), but reasoning (and hopefully, the discussion tone) co… ### [Drupal AI Contribution meeting 2026-02-09](https://git.drupalcode.org/project/ai/-/work_items/3570259) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::plan, meetings, priority::normal, state::fixed Description: >>> [!note] Migrated issue Reported by: [valthebald](https://www.drupal.org/user/239562) >>> Drupal AI Contribution meeting from Feb 09 at 17:00 UTC to Feb 10, 2026 17:00 UTC (Check your local time at https://www.timebie.com/std/universal.php?q=17) Previous meeting #3568422: Drupal AI Contribution meeting 2026-01-26 Where #ai-contrib channel in Drupal Slack Agenda Attendees self-intro and interests Follow-up to topics of previous meeting Suggest your topic in comments Add the issue you want to discuss as a related issue to this meeting ### [Create agents as Tools](https://git.drupalcode.org/project/ai/-/work_items/3556380) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiAgent, category::task, priority::normal, state::fixed Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) >>> Problem/Motivation This issue assumes that #1, #2 or #3 will be the decisions in #3556140: [Discuss] Allow usage of Tool API in Agents. If not, we can close this issue. We want to move our agents from being function calls to being tools. This means that we need to add some differences onto the output. By default the output, can just change to a string, but if we have #3556378: Create assisted structured output generation in place, the output should conform to whatever the JSON Schema is. This… ### [Implement Process System Integration for Automators](https://git.drupalcode.org/project/ai/-/work_items/3493291) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiAutomators, category::plan, priority::normal, state::closed Description: >>> [!note] Migrated issue Reported by: [seogow](https://www.drupal.org/user/3065779) >>> Problem/Motivation Integrate Automators with the new Process Abstraction Layer and implement process visualization UI, providing better management and monitoring of automation operations. Currently, Automators lack: Standardized process management Visual progress tracking Operation history Real-time status updates Easy way to monitor and manage running automations Ability to review and re-run previous automations Proposed resolution Process Integration Convert Automator operations to use Process A… ### [[Discuss] Allow usage of Tool API in Agents](https://git.drupalcode.org/project/ai/-/work_items/3556140) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::feature, discussion, priority, priority::normal Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) >>> Problem/Motivation Currently we have a module in Tool API that does create deriatives of the tools into function calling standards. Since we want to move Tool API to be the first and foremost way of how you do function calling in AI Core, we want to prepare for this. For the sake of the conversation its important for people to know that there are currently four ways of abstracting the function calls: ToolsInterface - in AI Core. This is pure abstraction, for different providers to have a com… ### [ai_ckeditor: Add option to show or hide the "AI Writer" status information](https://git.drupalcode.org/project/ai/-/work_items/3586569) State: opened | Updated: 2026-06-25 | Author: mxh (hauptm) | Assigned: unassigned | Labels: Description: ## Summary When enabling the ai_ckeditor submodule and enabling the plugin for the text format, a status information such as "AI Writer: Idle" is shown on every editor. This is provided in a hardcoded way by the AiNetworkStatus.js file. Some users may not want to see this status information. Therefore, it would be great being able to conveniently show or hide this information via configuration. ## Problem Making this status information optional improves general UX. ## Proposed solution *(optional)* Add a configuration option into `ai_ckeditor.settings` and expose it via UI. ## Workaroun… ### [Plan: Add cancel button to AI Chatbot](https://git.drupalcode.org/project/ai/-/work_items/3499583) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiChatbot, category::plan, priority::normal, state::closed Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) >>> Problem/Motivation The AI Chatbot currently does not follow the similar UX design as popular chatbots where you can cancel the request in the middle of it. While Deepchat seems to support it, without a common UI element for it, this will also require the possibility to revert things like agent changes, so it might need some testing or planning. Currently the revert only happens with premature destruction, errors or certain logical cases. Remaining tasks Research what is needed both on the Cha… ### [Use core Json::encode() and Json::decode everywhere possible](https://git.drupalcode.org/project/ai/-/work_items/3480683) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiCoreModule, category::task, priority::major, state::postponed Description: >>> [!note] Migrated issue Reported by: [scott_euser](https://www.drupal.org/user/3267594) Related to !1019 !434 >>> Problem/Motivation We have a bunch of instances of json_encode and json_decode. Let's just use the ones from core to avoid issues and leave the security of it to core. json_decode does very little. json_encode provides some escaping defaults. Steps to reproduce N/A Proposed resolution MR Remaining tasks MR User interface changes N/A API changes N/A Data model changes N/A ### [Move Prompt Library menu link under AI Infrastructure instead of Vector Database Configuration](https://git.drupalcode.org/project/ai/-/work_items/3586499) State: closed | Updated: 2026-06-25 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | Labels: category::task, priority::normal, state::closed Description: ## Problem/Motivation The **Prompt Library** menu link (`entity.ai_prompt.collection`) is currently nested under **Vector Database Configuration** (`ai.admin_vdb_providers`) in the AI admin menu. This is the wrong location — the Prompt Library has nothing to do with vector database providers, and placing it there makes it hard to discover. It should live directly under **AI Infrastructure** (`ai.admin_config_infrastructure`), alongside the other top-level infrastructure items (AI Platform Providers, Vector Database Configuration, Default Models, AI Files). ## Steps to reproduce 1. Navigate… ### [Prompt Library menu item missing due to incorrect parent](https://git.drupalcode.org/project/ai/-/work_items/3585596) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiCoreModule, category::bug, priority::normal, state::fixed Description: >>> [!note] Migrated issue Reported by: [drupov](https://www.drupal.org/user/433066) Related to !1523 !1522 !1521 >>> Update Summary: Fix menu link parent for Prompt Library Short Description: Prompt Library menu item missing due to incorrect parent Check-in Date: 04/19/2026 Problem/Motivation The "Prompt Library" menu item is not visible in the admin UI because it is assigned to an incorrect parent in ai.links.menu.yml. Steps to reproduce 1. Enable the AI module. 2. Go to Configuration → AI. 3. Observe that "Prompt Library" is missing. Proposed resolution Change the parent of entity… ### [[Discuss] Core support for browser providers](https://git.drupalcode.org/project/ai/-/work_items/3577202) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiCoreModule, category::plan, priority::normal, state::accepted 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 There are coming some providers built into the browsers - mainly Chrome with their AI on Chrome. Some of it experimental, but some of it already available. We have a provider that supports this in the Browser Provider using polling and session… ### [Research better practices for recipes](https://git.drupalcode.org/project/ai/-/work_items/3577175) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiCoreModule, category::plan, priority::normal, state::postponed 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 In AI 1.0.0 we did add a config action called SetupAiProvider for Drupal CMS launch - we have since added some other ones, but all of them are more or less workarounds to patch problems that existed in recipes at the time. What we need is: A … ### [Improvement suggestions for ai_automators docs](https://git.drupalcode.org/project/ai/-/work_items/3572751) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: Novice, aiAutomators, category::task, needs port to 2.x Description: >>> [!note] Migrated issue Reported by: [abhisekmazumdar](https://www.drupal.org/user/3557964) Related to !1202 !1201 !1187 >>> [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 While working on #3566577 AI pointed out that the ai/docs/modules/ai_automators/index.md need some updates about point 9. **Automator Worker**: to have new point about Field Widget Proposed resolution Add a 4th po… ### [Create an HTML to Markdown API and service](https://git.drupalcode.org/project/ai/-/work_items/3574246) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::feature, priority::normal, state::accepted, toBeTriaged 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 League\HTMLToMarkdown\HtmlConverter is initiated 3 times with 3 different configurations in current code, when #3574004: Generate a markdown version of (formatted) text field values gets solved that becomes the 4th one. https://git.drupalcode.org/search… ### [Support the `ai_json_schema` element inside off-canvas dialogs](https://git.drupalcode.org/project/ai/-/work_items/3586536) State: opened | Updated: 2026-06-25 | Author: Ahmad Khader (Ahmad-Khader) | Assigned: Abhisek Mazumdar (abhisekmazumdar) | Labels: AI Initiative Sprint, AI Innovation, category::task, priority::normal Description: # Title Support the `ai_json_schema` element inside off-canvas dialogs (correct rendering + value sync) ## Description The `ai_json_schema` form element (`Drupal\ai\Element\AiJsonSchema`) is documented for use "in any Drupal form", but it does not work when rendered inside Drupal's **off-canvas dialog** — which is how the `bpmn_io` modeller shows configuration forms. Upstream the element is only used on full-page forms (e.g. AI API Explorer), where it works; off-canvas has never been exercised, so this is not a regression — it is making the element robust in a context new consumers need. T… ### [Provide proper support for "unconfigured" AI provider state](https://git.drupalcode.org/project/ai/-/work_items/3572645) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, category::bug, priority::major 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… ### [Add an AI reranking processor for Search API (owned by the AI module)](https://git.drupalcode.org/project/ai/-/work_items/3586543) State: opened | Updated: 2026-06-25 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: Abhisek Mazumdar (abhisekmazumdar) | Labels: AI Initiative Sprint, AI Product Development, aiCoreModule, category::feature Description: ### Problem/Motivation Reranking improves the precision of semantic search by re-ordering an initial result set with a dedicated rerank model (or a general-purpose LLM). AI Core already added a `rerank` operation type in [#3488114](https://www.drupal.org/project/ai/issues/3488114) (now closed), but nothing in the ecosystem consumes it yet. [#3557901 — Add Reranking Support to AI Search](https://git.drupalcode.org/project/ai_search/-/work_items/3557901) proposed adding reranking directly to AI Search. On reflection it makes more sense for the **AI module itself to own this**: reranking is a g… ### [Clean up ai_observability settings form](https://git.drupalcode.org/project/ai/-/work_items/3574499) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, aiObservability, category::task Description: >>> [!note] Migrated issue Reported by: [svendecabooter](https://www.drupal.org/user/35369) Related to !1221 >>> [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 It seems the \Drupal\ai_observability\Form\SettingsForm can use some cleanup / removal of unnecessary code: Uses both #default_value and #config_target. The former is not needed if the latter is used. Simplify constants ... ### [[Research] Mechanism to force deprecated bundled submodules onto their contrib version (start with ai_validations)](https://git.drupalcode.org/project/ai/-/work_items/3586538) State: opened | Updated: 2026-06-25 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, aiValidations, category::plan Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1725 [feat: #3586538 Add hook_requirements and hook_update_10001 for ai_validations deprecation](https://git.drupalcode.org/project/ai/-/merge_requests/1725) | State: opened | Author: Abhisek Mazumdar (abhisekmazumdar), 81 diff lines Description: ## Summary Research and define a **repeatable mechanism** for forcing a site off a **deprecated bundled submodule** (shipped inside AI Core) and onto the **standalone contrib module** of the same machine name. Use **`ai_validations`** as the first concrete case, then generalise the outcome into a documented "deprecate-and-switch" playbook for the other submodules being moved to contrib. This is the missing *"how"* behind the deprecation work already started in #3552888 (Move out AI Validations), #3554535 / [CR 3570275](https://www.drupal.org/node/3570275) (AI Translate) and #3586497 (AI Sear… ### [AI CKEditor regression in 1.5.x?](https://git.drupalcode.org/project/ai/-/work_items/3586567) State: closed | Updated: 2026-06-25 | Author: Michael Anello (ultimike) | Assigned: unassigned | Labels: toBeTriaged, why::needsInfo Description: Is there any chance that AI CKEditor in 1.4.x is ahead of 1.5.x? I ask because I've been trying to test AI CCC -dev with AI 1.5.x and what I'm seeing doesn't look quite right. See https://git.drupalcode.org/project/ai_context/-/work_items/3581955#note_1270334 -mike ### [Unable to override the 'Calling agents' / 'Contacting agents' text](https://git.drupalcode.org/project/ai/-/work_items/3586389) State: opened | Updated: 2026-06-25 | Author: m4olivei | Assigned: unassigned | Labels: category::feature, priority::minor, state::rtbc, v1.4.x-dev Description: ### Problem/Motivation The deepchat conversational UI shows the the text 'Calling agents..' or 'Contacting agents..' when the system is off delgating to agents. Depending on the client / use case, this language can be confusing and/or unfamiliar, ultimately not helpful to the end user. This task is to allow this text to be overriden in configuration. I'd also suggest that the text be made consistent. By my read 'Contacting agents..' is more appropriate, as its more general than 'Calling', which we probably mean in the developer sense of 'Calling an API', but may users would read as a liter… ### [Glossary for the Drupal AI initiative](https://git.drupalcode.org/project/ai/-/work_items/3577844) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: Needs issue summary update, category::plan, documentation, priority::normal Description: >>> [!note] Migrated issue Reported by: [scott falconer](https://www.drupal.org/user/52557) >>> This is a first-pass glossary intended to align Drupal AI with common AI language, current framework language, and Drupal's existing terminology. The goal is to freeze the core terms now, avoid overloaded words, and refine edge cases later. Where a plain-language term and a provider-specific term both exist, prefer the plain-language term in public-facing docs and UI. Use the more precise technical term when architecture, runtime behavior, or interoperability matters. AX and shared-interface ter… ### [Add info about initiative and release differences to project page](https://git.drupalcode.org/project/ai/-/work_items/3586568) State: opened | Updated: 2026-06-25 | Author: Heather Wozniak (heatherwoz) | Assigned: unassigned | Labels: category::task, priority::minor, state::accepted Description: ## Summary The project page could do a better job explaining the difference between the minor releases (1.2, 1.3, 1.4) and leading people to information about the overall initiative. ## Problem There is a lot of information in the project description, but nothing that helps developers understand which minor version to choose or what to expect when upgrading minor or major versions. This is standard info on many Drupal project pages and would be helpful to add here. Some of this info exists in blog posts and on the initiative page, but there is no path to those pages from the project descri… ### [Generalize behaviour of FWA with Automators (AI Core v2)](https://git.drupalcode.org/project/ai/-/work_items/3586515) State: opened | Updated: 2026-06-25 | Author: Artem Dmitriiev (a.dmitriiev) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, aiAutomators, category::task Description: The refactor was done for version 1.x (1.4.x and 1.5.x). It was not possible to easily cherry-pick the changes to 2.x and 2.0.x. This issue is to port changes from https://git.drupalcode.org/project/ai/-/merge_requests/1536 to 2.x and 2.0.x branches. ### [Issue when creating content and click on AI Assistant on Ckeditor](https://git.drupalcode.org/project/ai/-/work_items/3586545) State: opened | Updated: 2026-06-25 | Author: Jean-Marc PAMBRUN (dpalicepeio-at-drupbuilder.org) | Assigned: unassigned | Labels: Is Contextualized, category::bug, priority::major, state::rtbc Description: Drupal 11.4.0-rc1 with [AI (Artificial Intelligence)](https://www.drupal.org/project/ai) 1.4.2 When creating content using ckeditor 5, when click on ai assitant a red message appears "Oops, something went wrong. Check your browser's developer console for more details." And the db_logs shows "Error: Call to a member function get() on null in Drupal\\ai_ckeditor\\AiCKEditorPluginBase-\>buildCkEditorModalForm() (line 214 of /home/drupbut/www/modules/contrib/ai/modules/ai_ckeditor/src/AiCKEditorPluginBase.php" Contextual information for getting started ## Context The AI CKEditor module (`ai_… ### [Automated Drupal 12 compatibility fixes for ai 2.0.x-dev](https://git.drupalcode.org/project/ai/-/work_items/3586525) State: opened | Updated: 2026-06-25 | 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… ### [Fiber branch in OpenAiBasedProviderClientBase::chat() drops token usage from the reconstructed ChatOutput](https://git.drupalcode.org/project/ai/-/work_items/3586522) State: closed | Updated: 2026-06-25 | Author: Jérôme Tchania (codeitwisely) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, aiCoreModule, category::bug Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1670 [Issue #3586522: Keep token usage in the chat() Fiber branch](https://git.drupalcode.org/project/ai/-/merge_requests/1670) | State: merged 2026-06-25 | Author: Jérôme Tchania (codeitwisely), 261 diff lines Description: ## Problem/Motivation `OpenAiBasedProviderClientBase::chat()` loses all token usage data when it runs inside a PHP Fiber. The Fiber branch (line ~341 on `1.x`) consumes the stream, then reconstructs the final output: ```php // Create the final message from accumulated data. $message = $stream->reconstructChatOutput()->getNormalized(); $chat_output = new ChatOutput($message, $response, []); ``` `reconstructChatOutput()` returns a `ChatOutput` that already carries the correct token usage — but only `getNormalized()` is kept, and the new `ChatOutput` is built with an empty `TokenUsageDto`. Th… ### [Allow vector database providers to opt in as the default VDB when none is set](https://git.drupalcode.org/project/ai/-/work_items/3586500) State: closed | Updated: 2026-06-25 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, category::feature, priority::normal Description: ## Problem/Motivation An AI provider can already opt in to become the **default provider** for a given operation type when none is set yet (the provider declares this and the AI module picks it up automatically if no default exists). The AI module also supports setting a **default vector database (VDB) provider**, but there is currently **no equivalent opt-in mechanism** for VDB providers. A VDB provider cannot declare "make me the default vector database if none is set", so the default always has to be configured manually. ## Proposed resolution Add the same opt-in capability for vector d… ### [Use ai_provider_configuration form element in RestrictToTopic configuration form](https://git.drupalcode.org/project/ai/-/work_items/3586472) State: closed | Updated: 2026-06-25 | Author: Artem Dmitriiev (a.dmitriiev) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, category::feature, priority::normal Description: RestrictToTopic still uses old AiProviderFormHelper service for selection of provider and model. This should be changed to use the form element instead. --- MERGE REQUESTS (24h) --- ### [Issue #3568648: Batch embeddings as a first-class operation type (follow-up to !1704)](https://git.drupalcode.org/project/ai/-/merge_requests/1726) State: opened | Author: Ahmad Khalil (ahmad-khalil-imagex) | Branch: 3568648-batch-embeddings-long-running-approach | 607 diff lines Description: # !1726 — ai (#3568648) Pushed a follow-up that makes batch embeddings a first-class, non-breaking operation type and hardens the VDB path. ## Summary * New `BatchEmbeddingsInterface` operation type with ID `batch_embeddings`. * Opt-in. * Extends `OperationTypeInterface`. * Makes `batchEmbeddings()` a trigger method so it routes through `ProviderProxy`. * This ensures the operation gets: * Events * Config normalization * Tags * `ai_logging` * `EmbeddingsInterface` is untouched, so existing providers are unaffected. * `OpenAiBasedProviderClientBase` now implements `Ba… ### [Remove ai_content_suggestions module for ai core](https://git.drupalcode.org/project/ai/-/merge_requests/1042) State: merged 2026-06-25 | Author: Eric Homanchuk (erichomanchuk) | Branch: 3552885-move-out-ai | 3777 diff lines Description: The module will now be a contrib module and has a project at https://www.drupal.org/project/ai_content_suggestions Closes #3552885 ### [Issue #3585596: Move Prompt Library under AI Infrastrcture](https://git.drupalcode.org/project/ai/-/merge_requests/1522) State: merged 2026-06-25 | Author: Dimitar Rupov (mrupal) | Branch: 3585596-prompt-library-parent-1.4.x | 13 diff lines Description: Closes #3585596 ### [Issue #3585596: Move Prompt Library under AI Infrastrcture](https://git.drupalcode.org/project/ai/-/merge_requests/1521) State: merged 2026-06-25 | Author: Dimitar Rupov (mrupal) | Branch: 3585596-prompt-library-parent-2.0.x | 13 diff lines Description: Closes #3585596 ### [Issue #3585596: Move Prompt Library under AI Infrastrcture](https://git.drupalcode.org/project/ai/-/merge_requests/1523) State: closed | Author: Dimitar Rupov (mrupal) | Branch: 3585596-prompt-library-parent-1.3.x | 13 diff lines Description: Closes #3585596 ### [docs: #3572751 Add docs for the Field widget Actions automator worker](https://git.drupalcode.org/project/ai/-/merge_requests/1293) State: merged 2026-06-25 | Author: Wolfgang Ziegler (fago) | Branch: cherry-pick-c72530aa | 22 diff lines Description: By: abhisekmazumdar By: sujal kshatri By: scontzen (cherry picked from commit c72530aa54564650b47754b622a266792694f4f4) ce3d22c7 docs: #3572751 Improvement suggestions for ai_automators docs Co-authored-by: Abhisek Mazumdar ### [Adding a new point about Automator Worker](https://git.drupalcode.org/project/ai/-/merge_requests/1187) State: closed | Author: Sujal Kshatri (sujal_31) | Branch: 2.0.x | 44218 diff lines Description: Documentation for **Automator Worker** in `ai/docs/modules/ai_automators/index.md` , Added a new point describing the **Field Widget worker type** ### [Adding a new point about Automator Worker](https://git.drupalcode.org/project/ai/-/merge_requests/1201) State: closed | Author: Sujal Kshatri (sujal_31) | Branch: 1.3.x | 19 diff lines Description: Documentation for **Automator Worker** in `ai/docs/modules/ai_automators/index.md` , Added a new point describing the **Field Widget worker type** ### [Issue #3586389: Add agent delegation message setting](https://git.drupalcode.org/project/ai/-/merge_requests/1539) State: opened | Author: m4olivei | Branch: 3586389-unable-to-override-t | 69 diff lines Description: Closes #3586389 ### [Draft: Fix lb asymetric translation](https://git.drupalcode.org/project/ai/-/merge_requests/1687) State: opened | Author: Arnaud Willame (arwillame) | Branch: 3586554-lb-asymetric-translation-not-translating-content-anymore | 759 diff lines Description: ## Description ## Testing instructions 1. 2. ## Checklist - [ ] I have linked the related issue in the MR title or description - [ ] I have performed a self-review of my own code - [ ] I have added or updated tests, or explained in the description why this change is not covered by tests - [ ] I have updated documentation for any new or changed functionality - [ ] I have written testing instructions and verified them locally - [ ] I have noted any required post-merge steps (config imports, cache rebuilds, manual changes) - [ ] This MR contains no breaking API or hook changes, or the… ### [Issue #3586522: Keep token usage in the chat() Fiber branch](https://git.drupalcode.org/project/ai/-/merge_requests/1723) State: merged 2026-06-25 | Author: Artem Dmitriiev (a.dmitriiev) | Branch: cherry-pick-4be58dd8-5 | 255 diff lines Description: ## Description ## Testing instructions 1. 2. ## Checklist - [ ] I have linked the related issue in the MR title or description - [ ] I have performed a self-review of my own code - [ ] I have added or updated tests, or explained in the description why this change is not covered by tests - [ ] I have updated documentation for any new or changed functionality - [ ] I have written testing instructions and verified them locally - [ ] I have noted any required post-merge steps (config imports, cache rebuilds, manual changes) - [ ] This MR contains no breaking API or hook changes, or the… ### [Issue #3586522: Keep token usage in the chat() Fiber branch](https://git.drupalcode.org/project/ai/-/merge_requests/1722) State: merged 2026-06-25 | Author: Artem Dmitriiev (a.dmitriiev) | Branch: cherry-pick-4be58dd8-4 | 255 diff lines Description: ## Description ## Testing instructions 1. 2. ## Checklist - [ ] I have linked the related issue in the MR title or description - [ ] I have performed a self-review of my own code - [ ] I have added or updated tests, or explained in the description why this change is not covered by tests - [ ] I have updated documentation for any new or changed functionality - [ ] I have written testing instructions and verified them locally - [ ] I have noted any required post-merge steps (config imports, cache rebuilds, manual changes) - [ ] This MR contains no breaking API or hook changes, or the… ### [Issue #3586522: Keep token usage in the chat() Fiber branch](https://git.drupalcode.org/project/ai/-/merge_requests/1719) State: merged 2026-06-25 | Author: Artem Dmitriiev (a.dmitriiev) | Branch: cherry-pick-4be58dd8 | 261 diff lines Description: ## Description ## Testing instructions 1. 2. ## Checklist - [ ] I have linked the related issue in the MR title or description - [ ] I have performed a self-review of my own code - [ ] I have added or updated tests, or explained in the description why this change is not covered by tests - [ ] I have updated documentation for any new or changed functionality - [ ] I have written testing instructions and verified them locally - [ ] I have noted any required post-merge steps (config imports, cache rebuilds, manual changes) - [ ] This MR contains no breaking API or hook changes, or the… ### [Issue #3586522: Keep token usage in the chat() Fiber branch](https://git.drupalcode.org/project/ai/-/merge_requests/1721) State: merged 2026-06-25 | Author: Artem Dmitriiev (a.dmitriiev) | Branch: cherry-pick-4be58dd8-3 | 261 diff lines Description: ## Description ## Testing instructions 1. 2. ## Checklist - [ ] I have linked the related issue in the MR title or description - [ ] I have performed a self-review of my own code - [ ] I have added or updated tests, or explained in the description why this change is not covered by tests - [ ] I have updated documentation for any new or changed functionality - [ ] I have written testing instructions and verified them locally - [ ] I have noted any required post-merge steps (config imports, cache rebuilds, manual changes) - [ ] This MR contains no breaking API or hook changes, or the… ### [Issue #3586522: Keep token usage in the chat() Fiber branch](https://git.drupalcode.org/project/ai/-/merge_requests/1720) State: merged 2026-06-25 | Author: Artem Dmitriiev (a.dmitriiev) | Branch: cherry-pick-4be58dd8-2 | 261 diff lines Description: ## Description ## Testing instructions 1. 2. ## Checklist - [ ] I have linked the related issue in the MR title or description - [ ] I have performed a self-review of my own code - [ ] I have added or updated tests, or explained in the description why this change is not covered by tests - [ ] I have updated documentation for any new or changed functionality - [ ] I have written testing instructions and verified them locally - [ ] I have noted any required post-merge steps (config imports, cache rebuilds, manual changes) - [ ] This MR contains no breaking API or hook changes, or the… ### [Cherry-pick changes from #3586500](https://git.drupalcode.org/project/ai/-/merge_requests/1718) State: merged 2026-06-25 | Author: Artem Dmitriiev (a.dmitriiev) | Branch: cherry-pick-56a8ae4c | 209 diff lines Description: ## Description ## Testing instructions 1. 2. ## Checklist - [ ] I have linked the related issue in the MR title or description - [ ] I have performed a self-review of my own code - [ ] I have added or updated tests, or explained in the description why this change is not covered by tests - [ ] I have updated documentation for any new or changed functionality - [ ] I have written testing instructions and verified them locally - [ ] I have noted any required post-merge steps (config imports, cache rebuilds, manual changes) - [ ] This MR contains no breaking API or hook changes, or the… --- COMMITS (24h) --- - [5d7d6a5b](https://git.drupalcode.org/project/ai/-/commit/5d7d6a5ba324b4380d5f7963b611f20062e2f2c6) Issue #3585596: Move Prompt Library under AI Infrastrcture — Dimitar Rupov (2026-04-19T11:14:26.000+03:00) - [4be58dd8](https://git.drupalcode.org/project/ai/-/commit/4be58dd8e4a0b2c05bff7275dbb4c281b53bb6b6) Issue #3586522: Keep token usage in the chat() Fiber branch — Jérôme Tchania (2026-06-25T08:34:34.000+00:00) ======================================================================== ## [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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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 Outside-in / Innovation Roadmap (draft)](https://git.drupalcode.org/project/ai_initiative/-/work_items/3576908) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: scott falconer (scottfalconer) | Labels: category::plan, priority::normal, roadmap, state::accepted Description: >>> [!note] Migrated issue Reported by: [scott falconer](https://www.drupal.org/user/52557) >>> Problem/Motivation: Optimize Drupal for agents by optimizing the platform itself: a reliable, governable action surface. Agents should be allowed to attempt real work, while the system enforces deterministic rules: schema validation, permissions, workflow state, auditability, delivery gates, and blast-radius limits. Outside-in is a first-class requirement: assume users will bring external agents/orchestrators, in addition to built-in agents. Priority 0: Identity + Reliability + Guardrails Tr… ### [Add standardized GitLab issue templates for initiative work](https://git.drupalcode.org/project/ai_initiative/-/work_items/3586461) State: closed | Updated: 2026-06-25 | Author: Christoph Breidert (breidert) | Assigned: unassigned | Labels: AI Initiative Sprint, category::task, priority::normal, state::rtbc Description: ## Summary Introduce a standardized set of GitLab issue templates to organize all work within the Drupal AI Initiative. Templates should cover the main types of work the initiative produces — coordination, research, decisions, meetings, and community activities — and follow a consistent structure so contributors across all tracks can create well-formed issues quickly. ## Work Track Cross-track ## Context / Background The Drupal AI Initiative coordinates work across four tracks (AI Core, AI Products, AI Marketing, AI UX) and a growing contributor base. Without a shared template structure, … --- 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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-06-25 | 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 | 210 diff lines Description: Relates to #3585018. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- 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

        Activity this period focused on automated Drupal 12 compatibility preparation. The Automated Drupal 12 compatibility fixes for ai_integration_eca 1.0.x-dev issue was updated, with a corresponding Automated Project Update Bot fixes merge request opened to address deprecated API usage. The MR contains 210 diff lines targeting the 1.0.x-dev branch and awaits review. No commits were merged during this period, leaving the Drupal 12 compatibility work as the primary item requiring attention.

        How can I help on this project?

        Review the automated Drupal 12 compatibility MR to verify the proposed deprecation fixes are appropriate and don't introduce regressions. Manual testing of the changes against Drupal 12 development releases would help validate compatibility before merging.

        Contributors: project update bot (Project-Update-Bot) ======================================================================== ## [5] summariseModule:ai_provider_openai:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: OpenAI Provider (machine name: ai_provider_openai) Reporting period: last 24h (2026-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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: Paul Sheldrake (paulsheldrake), 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

        OpenAI 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). (none) --- MERGE REQUESTS (24h) --- ### [add support for batch embeddings](https://git.drupalcode.org/project/ai_provider_openai/-/merge_requests/59) State: opened | Author: Paul Sheldrake (paulsheldrake) | Branch: 3568659-support-batched-embeddings | 284 diff lines Description: Closes #3568659 ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/ai_provider_openai/-/merge_requests/77) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 13 diff lines Description: Relates to #3606117. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [6] stripNameAttribution:ai_provider_openai ======================================================================== 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: Paul Sheldrake (paulsheldrake), 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 ---

          OpenAI Provider

          Two new merge requests were opened during the reporting period. Add support for batch embeddings introduces support for batched embeddings with 284 lines of changes. Separately, Automated Project Update Bot fixes was opened with 13 lines of automated maintenance updates. No merge requests were merged and no commits were pushed during this period.

          How can I help on this project?

          Review the batch embeddings MR to help move it toward merge. Test the 284-line changeset against realistic embedding workloads. Verify the automated fixes in MR 77 for any unintended side effects.

          Contributors: Paul Sheldrake (paulsheldrake), project update bot (Project-Update-Bot) ======================================================================== ## [7] summariseModule:ai_provider_amazeeio:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: amazee.ai Private AI Provider (machine name: ai_provider_amazeeio) Reporting period: last 24h (2026-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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: Dan Lemon (dan2k3k4), 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

          amazee.ai Private AI 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). ### [pgsql ext dependency missing in composer.json](https://git.drupalcode.org/project/ai_provider_amazeeio/-/work_items/3586235) State: closed | Updated: 2026-06-25 | Author: Dan Lemon (dan2k3k4) | Assigned: unassigned | Labels: Description: Error: Call to undefined function Drupal\ai_provider_amazeeio\Vdb\Postgres\pg_connect() in Drupal\ai_provider_amazeeio\Vdb\Postgres\PostgresPgvectorClient->getConnection() (regel 80 van /app/web/modules/contrib/ai_provider_amazeeio/src/Vdb/Postgres/PostgresPgvectorClient.php). ### [Automated Drupal 12 compatibility fixes for ai_provider_amazeeio 2.0.x-dev](https://git.drupalcode.org/project/ai_provider_amazeeio/-/work_items/3586234) State: opened | Updated: 2026-06-25 | 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… --- MERGE REQUESTS (24h) --- ### [fix(#3586231): check that key identifiers are non-empty strings before loading keys](https://git.drupalcode.org/project/ai_provider_amazeeio/-/merge_requests/74) State: merged 2026-06-25 | Author: Dan Lemon (dan2k3k4) | Branch: 3586231-issue-branch | 30 diff lines Description: Closes #3586231 ### [chore: require ext-pgsql](https://git.drupalcode.org/project/ai_provider_amazeeio/-/merge_requests/76) State: merged 2026-06-25 | Author: Dan Lemon (dan2k3k4) | Branch: add-ext-psql | 75 diff lines ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/ai_provider_amazeeio/-/merge_requests/77) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 388 diff lines Description: Relates to #3586234. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [8] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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

            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). ### [Automated Drupal 12 compatibility fixes for gemini_provider 1.x-dev](https://git.drupalcode.org/project/gemini_provider/-/work_items/3589187) State: opened | Updated: 2026-06-25 | 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… --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/gemini_provider/-/merge_requests/41) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 62 diff lines Description: Relates to #3589187. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [9] stripNameAttribution:gemini_provider ======================================================================== 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 ---

              Gemini Provider

              Activity this period focused on automated Drupal 12 compatibility preparation. An Automated Drupal 12 compatibility fixes for gemini_provider 1.x-dev issue was opened to track removal of deprecated API uses ahead of Drupal 12. A corresponding merge request, Automated Project Update Bot fixes, was created with 62 lines of changes addressing these deprecations. The MR remains open and awaiting review. No commits were merged during this reporting period.

              How can I help on this project?

              Review the Automated Project Update Bot fixes merge request to verify the Drupal 12 compatibility changes are appropriate and don't introduce regressions. Test the changes against a Drupal 12 development environment to confirm deprecated API calls are properly replaced.

              Contributors: project update bot (Project-Update-Bot) ======================================================================== ## [10] summariseModule:ai_vdb_provider_milvus:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Milvus VDB Provider (machine name: ai_vdb_provider_milvus) Reporting period: last 24h (2026-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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: Artem Dmitriiev (a.dmitriiev), 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

              Milvus VDB 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). (none) --- MERGE REQUESTS (24h) --- ### [add support for batching on indexing operations](https://git.drupalcode.org/project/ai_vdb_provider_milvus/-/merge_requests/44) State: opened | Author: Artem Dmitriiev (a.dmitriiev) | Branch: 3568651-batch-inserts-index-only | 297 diff lines Description: Closes #3568651 ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/ai_vdb_provider_milvus/-/merge_requests/50) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 13 diff lines Description: Relates to #3606124. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [11] stripNameAttribution:ai_vdb_provider_milvus ======================================================================== 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: Artem Dmitriiev (a.dmitriiev), 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 ---

                Milvus VDB Provider

                Development activity this period focused on performance improvements and automated maintenance. A new merge request was opened to add support for batching on indexing operations, introducing 297 lines of changes to optimize how records are indexed into Milvus. The branch targets batch insert functionality for index operations only.

                Additionally, an Automated Project Update Bot fixes merge request was opened containing maintenance updates from the project update bot's latest run.

                No merge requests were completed during this period, and no commits were pushed to the main branch. Both open merge requests are awaiting review and could benefit from testing and feedback.

                How can I help on this project?

                • Review the batching on indexing operations merge request to validate the API changes and performance improvements.
                • Test the batch insert functionality with various data volumes to ensure it handles edge cases correctly.

                Contributors: Artem Dmitriiev (a.dmitriiev), project update bot (Project-Update-Bot)

                ======================================================================== ## [12] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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). ### [Views agent: style/row and filters/filter_groups must be overridden as pairs on non-default displays](https://git.drupalcode.org/project/ai_agents/-/work_items/3582782) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::bug, code, priority::normal, state::needsWork Description: >>> [!note] Migrated issue Reported by: [abhisekmazumdar](https://www.drupal.org/user/3557964) >>> Problem/Motivation Views internally treats certain display options as coupled pairs: style and row are always set together — the row plugin must be compatible with the style plugin. filters and filter_groups are always set together — filter_groups holds the AND/OR operator config that applies to the filters. When the Views agent updates only one option of a pair on a non-default display, the result is a broken or inconsistent display. For example: A user asks "Change the format… ### [UpdateViewPlugins: display option updates on non-default displays do not override defaults inheritance](https://git.drupalcode.org/project/ai_agents/-/work_items/3582781) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::bug, code, priority::normal, state::accepted Description: >>> [!note] Migrated issue Reported by: [abhisekmazumdar](https://www.drupal.org/user/3557964) >>> Problem/Motivation When the Views agent calls UpdateViewPlugins to update a display option (e.g. title, path, style) on a non-default display such as page_1, the value is saved to the config array but the defaults flag for that option is never cleared on the display. At runtime, Views checks defaults[title] === true and still serves the default display's value instead of the one that was just written. This means a user prompt like "Update the title of the page display to Article Listing" appe… ### [Fix streaming](https://git.drupalcode.org/project/ai_agents/-/work_items/3577520) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::bug, code, priority::normal, state::accepted Description: >>> [!note] Migrated issue Reported by: [d0t15t](https://www.drupal.org/user/132353) Related to !243 >>> Problem/Motivation Streaming in the ai_chatbot does not work. Steps to reproduce Create an AI assistant and attach an agent to it. Enable streaming on the assistant's chatbot block. Submit a message — the response is not streamed; it waits for the full completion before rendering. Proposed resolution Add $streaming and $streamingIterator properties to AiAgentEntityWrapper. Pass setStreamedOutput($this->streaming) to the ChatInput before the provider call in determineSolvabi… ### [Add limits on how often a tool can run](https://git.drupalcode.org/project/ai_agents/-/work_items/3547995) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative Sprint, AI Innovation, category::feature, code 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… ### [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-06-25 | 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… ### [Exceptions in tool execute break the UI for the user](https://git.drupalcode.org/project/ai_agents/-/work_items/3537123) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative Sprint, AI Innovation, category::bug, code Description: >>> [!note] Migrated issue Reported by: [jurgenhaas](https://www.drupal.org/user/168924) Related to !163 >>> Problem/Motivation When using the AI Agent Explorer and run an agent that has an issue with a tool definition, e.g. if the context definition isn't accurate, Drupal throws an exception and the UI in the explorer is broken with an error message in the browser console. The user doesn't get any feedback, that the process failed. The same is likely to happen in other contexts, too, e.g. in the chat. Proposed resolution Let's try and catch such exceptions and provide the exception messa… --- 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 | 1325 diff lines Description: Relates to #3586038. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [13] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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

                  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). ### [tool:run masks the failure message: getOutputValues() throws on unset outputs of a failed tool](https://git.drupalcode.org/project/tool/-/work_items/3582942) State: closed | Updated: 2026-06-25 | Author: Matt Glaman (mglaman) | Assigned: unassigned | Labels: state::fixed Description: ## Problem `drush tool:run` shows nothing useful when a tool fails. Instead of the failure message, it throws a `ContextException` and exits. The command reads the result, then unconditionally reads the outputs: ```php $success = $tool->getResultStatus(); $message = (string) $tool->getResultMessage(); $outputs = $tool->getOutputValues(); ``` A tool that returns `ExecutableResult::failure()` never sets its declared output contexts. `getOutputValues()` loops over every declared output and calls `getOutputValue()`, which throws on an unset context: ```php throw new ContextException(sprintf("… --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- (none) ======================================================================== ## [14] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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), Abhishek Dhariwal (adaptative) [1], Adam G-H (phenaproxima), AKHIL BABU (AkhilBabu), Bálint Kléri (balintbrews) [1], Christian López Espínola (penyaskito) [2], Feliksas Mazeikis (f.mazeikis) [1], Kunal Sachdev (kunal.sachdev), Matt Glaman (mglaman) [1], scott falconer (scottfalconer), Wim Leers (wimleers) [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

                    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-06-26 | Author: **** (project_19391_bot_cb443e60680723bba08a5351bf595251) | Assigned: unassigned | Labels: 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: 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. - ⚠️ WARN: Failed to set branch status - ⚠️ WARN: No github.com token has been configured. Skipping release notes retrieval ## Deprecations / Replacements > ⚠️ **Warning** > The foll… ### [Canvas icon / logo for Project Browser and project page](https://git.drupalcode.org/project/canvas/-/work_items/3545468) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: Novice, category::task, miscellaneous, priority::normal Description: >>> [!note] Migrated issue Reported by: [darren oh](https://www.drupal.org/user/30772) >>> Overview We need a visual representation of the project. The logo candidates for Experience Builder are not relevant now that the project has been renamed. Proposed resolution Candidate 1 Candidate 2 Candidate 3 > Related issue: [Issue #3507188](https://www.drupal.org/node/3507188) ### [Component inputs order is database-backend-dependent: fix inputs key order assertions in tests and enforce it via PHPStan when possible](https://git.drupalcode.org/project/canvas/-/work_items/3591726) State: closed | Updated: 2026-06-26 | Author: Christian López Espínola (penyaskito) | Assigned: Christian López Espínola (penyaskito), Wim Leers (wimleers) | Labels: AI-accelerated, backend, category::task, dataModel Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1291 [Issue #3591726: Compare component inputs order-independently in tests and enforce it via PHPStan](https://git.drupalcode.org/project/canvas/-/merge_requests/1291) | State: merged 2026-06-26 | Author: Christian López Espínola (penyaskito), 361 diff lines Description: ### Overview The kernel test `ComponentTreeFieldSymmetricalTranslationSynchronizerTest` fails on MySQL and PostgreSQL but passes on MariaDB and SQLite. The failure is an "arrays are identical" mismatch on a component instance's `inputs` where the values are correct but the key order differs (e.g. `href`/`text` swapped). The cause is database-backend-dependent: component `inputs` are stored in a native JSON column, and JSON object key order is not preserved uniformly across backends. MySQL (`json`) and PostgreSQL (`jsonb`) reorder object keys on storage, while MariaDB (where `json` is a `LONG… ### [Symmetric translation: component instance version updates must propagate to all translations](https://git.drupalcode.org/project/canvas/-/work_items/3591596) State: closed | Updated: 2026-06-26 | Author: Christian López Espínola (penyaskito) | Assigned: Christian López Espínola (penyaskito), Ted Bowman (tedbow), Wim Leers (wimleers) | Labels: AI-accelerated, category::feature, dataModel, priority::critical Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1271 [feat: #3591596 Apply component instance updater to all component trees: content/config non-default translations; introduce `StagedLanguageConfigOverride` to treat both similarly](https://git.drupalcode.org/project/canvas/-/merge_requests/1271) | State: merged 2026-06-25 | Author: Wim Leers (wimleers), 5559 diff lines Description: ### Overview When a code component's props or slots change, Canvas's `ComponentInstanceUpdater` automatically reconciles existing component instances to the new version — removing orphaned props, injecting defaults for new required props, and removing children in deleted slots. This reconciliation currently only affects the language that happens to be loaded when the entity is opened for editing. In symmetric translation mode, `component_version` lives in the shared `tree` column group, so updating the version for one language inadvertently marks all translations as up-to-date. When a transl… ### [Deduplicate the shared JavaScript component test fixture and prop-mutation helpers across the translation-propagation and component-instance-updater kernel tests](https://git.drupalcode.org/project/canvas/-/work_items/3591723) State: opened | Updated: 2026-06-25 | Author: Christian López Espínola (penyaskito) | Assigned: unassigned | Labels: category::task, componentSources, data integrity, priority::major Description: ### Overview Two kernel test classes independently set up the same thing: a `JavaScriptComponent` fixture and a family of "prop-mutation" helpers that simulate a component evolving (adding/removing required and optional props, changing a prop's type, etc.). - `TranslationPropagationTestBase` (added in #3591596) — its fixture plus `addOptionalProp()`, `addRequiredProp()`, `removeOptionalProp()`, `changePropType()`, `removeAndAddProp()`, `removeBothProps()`. - `JsonSchemaPropsComponentInstanceUpdaterTest` — its own near-identical fixture plus `addOptionalProp()`, `addOptionalArrayProp()`, `rem… ### [Put conflict detection behind a dev mode flag](https://git.drupalcode.org/project/canvas/-/work_items/3591725) State: closed | Updated: 2026-06-25 | Author: Feliksas Mazeikis (f.mazeikis) | Assigned: Feliksas Mazeikis (f.mazeikis) | Labels: 1.x-dev, Conflict resolution, backend, priority::critical Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1290 [Put conflict detection behind feature flag](https://git.drupalcode.org/project/canvas/-/merge_requests/1290) | State: merged 2026-06-25 | Author: Feliksas Mazeikis (f.mazeikis), 251 diff lines Description: Conflict detection is getting in the way of translations work. Considering this already has been a question on !1193 , let's put conflict detection BE changes behind dev flag. By @wimleers on slack: > :grimacing: :bug: Speaking of which, I just:Created a Page that uses a code component\ > Triggered a new version of that code component\ > Visited that Page via Canvas → auto-save created (only for the default translation aka en)\ > TRANSLATE that Page\ > Again visit that Page via Canvas → :warning: CONFLICT DETECTED! ### [Avoid registering draft asset-library JS URLs to prevent locale's js_alter from treating them as local files](https://git.drupalcode.org/project/canvas/-/work_items/3591719) State: closed | Updated: 2026-06-25 | Author: Kunal Sachdev (kunal.sachdev) | Assigned: unassigned | Labels: category::task, priority::normal, state::closed, v1.x-dev Description: **Overview** This was found while working in https://git.drupalcode.org/project/canvas/-/work_items/3591654, see thread https://git.drupalcode.org/project/canvas/-/merge_requests/1234#note_1258003 In `LibraryHooks::libraryInfoBuild()`, the draft variant of each AssetLibrary entity registers its JS URL as a standard library asset: Because the path starts with / (but not //), Drupal's `LibraryDiscoveryParser` strips the leading slash and stores it as a root-relative type: file asset (`canvas/api/v0/auto-saves/js/asset_library/global`). When the locale module is installed, its `hook_js_alter()` … ### [Draft asset library JS asset registered as a file triggers file_get_contents() warning in locale's JS scan](https://git.drupalcode.org/project/canvas/-/work_items/3591729) State: closed | Updated: 2026-06-25 | Author: Christian López Espínola (penyaskito) | Assigned: Christian López Espínola (penyaskito) | Labels: JavaScript, autoSave, category::bug, internalHttpApi Description: ### Overview On a multilingual site, page renders that include a Canvas asset library draft emit a PHP warning: ``` file_get_contents(canvas/api/v0/auto-saves/js/asset_library/global): Failed to open stream: No such file or directory in _locale_parse_js_file() (core/modules/locale/locale.module:771) ``` The interface-translation system (`locale`) scans every JavaScript asset of type `file` on a page to extract `Drupal.t()` / `Drupal.formatPlural()` strings, reading each one with `file_get_contents()`. Canvas registers the draft asset library's JS as a root-relative route URL (`/canvas/api… ### [Strengthen test coverage for multi-translation multi-component instance automatic version updating](https://git.drupalcode.org/project/canvas/-/work_items/3591730) State: opened | Updated: 2026-06-25 | Author: Wim Leers (wimleers) | Assigned: unassigned | Labels: technical debt, translation Description: The following discussion from !1271 should be addressed: - [ ] @wimleers started a [discussion](https://git.drupalcode.org/project/canvas/-/merge_requests/1271#note_1271204): (+4 comments) > :bug: This is not what happens: not only _selected_ translations are published, they _all_ are published. Thanks to > ```php > $snapshots = AutoSaveManager::groupContentEntityAutoSaves($publish_auto_saves)[$group_key]; > ``` > in the `POST` controller. > > If that weren't the case, the `ComponentTreeSymmetricalTranslationConstraintValidator` would fail on content entities, a… ### [Flat named component validation in @drupal-canvas/eslint-config misses sibling entrypoints](https://git.drupalcode.org/project/canvas/-/work_items/3591717) State: closed | Updated: 2026-06-25 | Author: Bálint Kléri (balintbrews) | Assigned: Bálint Kléri (balintbrews) | Labels: category::bug, cliTool Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1284 [fix(CLI Tool): #3591717 Flat named component validation in @drupal-canvas/eslint-config misses sibling entrypoints](https://git.drupalcode.org/project/canvas/-/merge_requests/1284) | State: merged 2026-06-25 | Author: Bálint Kléri (balintbrews), 177 diff lines Description: The CLI supports flat named components where multiple components share one directory: - `src/components/card.component.yml` - `src/components/card.tsx` - `src/components/pricing-table.component.yml` - `src/components/pricing-table.tsx` `@drupal-canvas/eslint-config` identifies only one named `*.component.yml` file in a directory when deciding whether a JavaScript or TypeScript file is a component entrypoint. Rules such as `component-exports` can skip sibling flat component entrypoints. **Out of scope** `@drupal-canvas/cli` validates each discovered component by linting its directory. When… ### [Canvas AI: canvas_ai_post_update_0003 strips the orchestrator agent UUID via setData()](https://git.drupalcode.org/project/canvas/-/work_items/3591660) State: closed | Updated: 2026-06-25 | Author: Matt Glaman (mglaman) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Innovation, ai, state::rtbc Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1230 [Issue #3591660: Preserve agent UUID in canvas_ai post_update 0003 and repair affected sites](https://git.drupalcode.org/project/canvas/-/merge_requests/1230) | State: merged 2026-06-25 | Author: Matt Glaman (mglaman), 164 diff lines Description: ## Overview `canvas_ai_post_update_0003_reimport_orchestrator_agent()` in `modules/canvas_ai/canvas_ai.post_update.php` reimports the orchestrator agent to pick up a changed system prompt (follow-up to [#3582390](https://www.drupal.org/project/canvas/issues/3582390)). It reads `config/install/ai_agents.ai_agent.canvas_ai_orchestrator.yml` and calls `->setData($data)->save(TRUE)`. The install file has no top-level `uuid` key. `setData()` replaces the entire config record, so the existing `uuid` is dropped from the active `ai_agents.ai_agent.canvas_ai_orchestrator` config. The hook shipped in … ### [Use notifications to inform users about the detected conflicts](https://git.drupalcode.org/project/canvas/-/work_items/3591715) State: opened | Updated: 2026-06-25 | Author: Feliksas Mazeikis (f.mazeikis) | Assigned: Feliksas Mazeikis (f.mazeikis) | Labels: 1.x-dev, Conflict resolution, backend, priority::minor Description: We should use Canvas notifications to notify users about the detected conflicts. Designs and more detailed description is pending. ### [Boolean props auto-enable when another prop is changed in the Canvas form](https://git.drupalcode.org/project/canvas/-/work_items/3591716) State: opened | Updated: 2026-06-25 | Author: Alamgir Hossain (alamgir.hossain.cse) | Assigned: unassigned | Labels: Description: ## Summary In Canvas, when editing a component that has boolean props (e.g. `card-program`), changing any non-boolean prop causes all boolean props to appear enabled (toggle switches flip to ON) even though the user never toggled them. ## Root causes Two bugs were identified: ### 1. `|| []` coerces boolean `false` to `[]` in `layoutModelSlice.ts` In `_addNewComponentToLayout` → `buildInitialData()`, when building the initial model for a newly dropped component: ```typescript // BEFORE (buggy): initialData.resolved[propName] = prop.default_values?.resolved || []; // For boolean false: fal… ### [Automated Drupal 12 compatibility fixes for canvas 1.x-dev](https://git.drupalcode.org/project/canvas/-/work_items/3591603) State: opened | Updated: 2026-06-25 | Author: project update bot (Project-Update-Bot) | Assigned: Wim Leers (wimleers), Björn Brala (bbrala), project update bot (Project-Update-Bot) | Labels: AI-accelerated, DX (Developer Experience), Drupal 12 compatibility, priority::major 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… ### [Canvas AI: Component context required props missing required flag](https://git.drupalcode.org/project/canvas/-/work_items/3591655) State: opened | Updated: 2026-06-25 | Author: AKHIL BABU (AkhilBabu) | Assigned: Tormi Tabor (tormi) | Labels: 1.x-dev, AI Initiative Sprint, AI Innovation, Novice Description: ## Problem A regression in `CanvasAiPageBuilderHelper::processSdc()` causes the `required: true` flag to be dropped from component context metadata. Current code: `// Mark required props. if (isset($sdc_definition['props']['required']) && \in_array($prop_name, $sdc_definition['props']['required'], TRUE)) { $output[$source_id]['components'][$component_id]['props'][$prop_name]['required'] = TRUE; } ` The flag should instead be added to the prop metadata: `// Mark required props. if (isset($sdc_definition['props']['required']) && \in_array($prop_name, $sdc_definition['props']['required'], … ### [Canvas AI: Remove hardcoded component source IDs](https://git.drupalcode.org/project/canvas/-/work_items/3591652) State: closed | Updated: 2026-06-25 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 1.x-dev, AI Initiative Sprint, AI Innovation, ai Description: The Update hook added in #3573571 uses hardcoded plugin IDS, Replace them with constants See: https://git.drupalcode.org/project/canvas/-/merge_requests/606#note_1080422 ### [Canvas AI: An unexpected error has occurred while rendering preview](https://git.drupalcode.org/project/canvas/-/work_items/3556922) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative Sprint, AI Innovation, AI Page Generation, ai Description: > [!note] Migrated issue > > > > > > Reported by: [akhil babu](https://www.drupal.org/user/3632866) > > Related to !813 ### Overview Getting the following error occasionally when generating a title, metadata, or adding components using the Page Builder agent from the chat interface. ![/files/issues/2025-11-10/Image-%201_0.png](https://www.drupal.org/files/issues/2025-11-10/Image-%201_0.png) This error usually occurs when new components are added or a full page is generated while the title and description are empty. Currently the UI has 3 separate handlers for adding/updating canvas page… ### [Refactor away the brittle`PageRegion::forAutoSaveData()`](https://git.drupalcode.org/project/canvas/-/work_items/3591728) State: opened | Updated: 2026-06-25 | Author: Wim Leers (wimleers) | Assigned: unassigned | Labels: auto-save, technical debt Description: The following[discussion](https://git.drupalcode.org/project/canvas/-/merge_requests/1271#note_1273102) from !1271 should be addressed: > :thinking: In principle, this needs tests. > > But this has been thoroughly manually tested. During that manual testing, @tedbow found a bug, for example, and it was _not_ here: `::testPageRegionComponentPropRemovalCreatesAutoSavesForTranslation()`. > > :bug: > 1. There are 6 calls to this method in total. 5 of them in tests. The sole remaining one is the one that led to discovering this is wrong in HEAD. > 2. That `@todo` has been there for 1.5 year, and… ### [Add `canvas-validate-component-trees` Drupal CLI command to check health of Canvas component trees: validate every Canvas (content|config) entity, validate every content entity component tree field revision+translation](https://git.drupalcode.org/project/canvas/-/work_items/3591667) State: opened | Updated: 2026-06-25 | Author: Wim Leers (wimleers) | Assigned: Wim Leers (wimleers) | Labels: Configuration schema, DX (Developer Experience), Needs ADR, data integrity Description: Title says it all. Context: Acquia Source has adopted Canvas long before it had a stable data model, and hence long before Canvas provided update paths. This has proven to cause seemingly random bugs during deployment, but time and time again the root cause has been data created _before_ Canvas provided update paths. This has been a time-consuming and costly affair (e.g. #3578865, #3579086). Canvas has invested _heavily_ into thorough validation to spot data integrity problems, to be able to guarantee that "if it passes validation, it will work [render + be editable with good UX]". ## Propo… ### [Deleting optional props from an SDC/code component causes validation errors in config-defined component instances: regression for monolingual sites, bug for multilingual sites](https://git.drupalcode.org/project/canvas/-/work_items/3591727) State: opened | Updated: 2026-06-25 | Author: Wim Leers (wimleers) | Assigned: unassigned | Labels: DX (Developer Experience), Regression, componentSources, data integrity Description: The following [discussion](https://git.drupalcode.org/project/canvas/-/merge_requests/1271#note_1273034) from !1271 should be addressed: > :warning: :exploding_head: While sprinkling `self::assertEntityIsValid(…)` calls over @tedbow's a41099c6d32b6e13296eb0325b1a94cf8ef14b16, this was a highly unexpected find! > > This means #3591667+ would be surfacing validation errors for many component trees using `sdc` or `js` component instances that have had optional props removed. > > Fixing it is out of scope here; needs follow-up. ### Problem Removing an optional prop from an SDC/code component … ### [Symmetrically translatable config-defined component trees, STEP 2: change config schema type for `inputs` to allow translating via core's Config Translation UI for ContentTemplates & PageRegions](https://git.drupalcode.org/project/canvas/-/work_items/3582478) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: AI-accelerated, Configuration schema, category::task, configManagement Description: >>> [!note] Migrated issue Reported by: [wim leers](https://www.drupal.org/user/99777) Related to !898 !901 !868 >>> Approach For high-level overview, see the change record. ADR: !901 Implementation MR #1: !962 in #3586342: Symmetrically translatable component trees, STEP 1: introduce `ComponentInstanceInputsConfigSchemaGeneratorInterface` Implementation MR #2: !898, here Implementation MR #3: !831 in https://git.drupalcode.org/project/canvas/-/work_items/3582464 Overview The explicit inputs for a component instance in a config-defined component tree currently looks like this: diff --gi… ### [Changing Metadata Clears Canvas AI Prompt Text](https://git.drupalcode.org/project/canvas/-/work_items/3558257) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative Sprint, AI Innovation, AI Page Generation, ai Description: >>> [!note] Migrated issue Reported by: [vipin.mittal18](https://www.drupal.org/user/319716) Related to !530 >>> Overview When composing a prompt in Canvas AI, if any page metadata (such as meta description) is modified before submitting the prompt, all previously entered text in the Canvas AI prompt field is erased. Proposed resolution Updating any metadata field (title, description, etc.) should not clear the text entered in the Canvas AI prompt field. The data in the Canvas AI prompt and in the metadata fields should be managed independently without interference from one another. St… ### [Canvas AI: Expose Props of Blocks to the Agent](https://git.drupalcode.org/project/canvas/-/work_items/3569120) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative, AI Product Development, ai, category::bug 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: UI/Functional update. Lock the canvas during a build and add a long-running AI-tasks UI element to the chat](https://git.drupalcode.org/project/canvas/-/work_items/3591724) State: opened | Updated: 2026-06-25 | Author: Aidan Foster (aidanfoster) | Assigned: unassigned | Labels: Description: **Source:** Drupal AI UX Weekly Meeting, June 22, 2026. @Marcus_Johansson reviewed and gave an update on the prototype Drupal Canvas AI brand @AkhilBabu based on the experimental prototype that creates components one-at-a-time on this experimental branch https://github.com/akhilbabu-qed-42/c2026/tree/canvas-ai-poc The approach looks very promising from early testing but we need to update the UI to accommodate the changes. ## **Problem / Motivation** Canvas AI now builds a page component by component. While it is building, interacting with the canvas (adding or removing components) breaks… --- MERGE REQUESTS (24h) --- ### [chore(deps): update dependency cspell to v10](https://git.drupalcode.org/project/canvas/-/merge_requests/1273) State: opened | Author: **** (project_19391_bot_cb443e60680723bba08a5351bf595251) | Branch: renovate/major-cspell-monorepo | 13 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/) | |---|---|---|---| | [cspell](https://cspell.org/) ([source](https://github.com/streetsidesoftware/cspell/tree/HEAD/packages/cspell)) | [`^9.2.0` → `^10.0.0`](https://renovatebot.com/diffs/npm/cspell/9.7.0/10.0.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/cspell/10.0.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/cspell/9.7.0/10.0.1?slim=true) | > :exclamation: **I… ### [chore(deps): update mysql docker tag to v8.3](https://git.drupalcode.org/project/canvas/-/merge_requests/1272) State: opened | Author: **** (project_19391_bot_cb443e60680723bba08a5351bf595251) | Branch: renovate/mysql-8.x | 13 diff lines Description: This MR contains the following updates: | Package | Type | Update | Change | Pending | |---|---|---|---|---| | mysql | service-image | minor | `8.0` → `8.3` | `8.4` | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - "before 6am on Monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] If you want to r… ### [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 | 77 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.11.3`](https://renovatebot.com/diffs/npm/@axe-core%2fplaywright/4.11.1/4.11.3) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@axe-core%2fplaywright/4.11.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@axe-core%2fplaywright/4.11.1/4.11.3?slim=true) | | [@babel/parser](… ### [fix(autoSave, internalHttpApi): #3591729 Register draft asset library JS as external so locale's JS scan skips it](https://git.drupalcode.org/project/canvas/-/merge_requests/1293) State: merged 2026-06-25 | Author: Christian López Espínola (penyaskito) | Branch: 3591729-draft-asset-library-js-asset-registered-as-a-file-triggers-file-get-contents-warning-in-locales-js-scan | 19 diff lines Description: ### Overview On a multilingual site, page renders that include a Canvas asset library draft emit a PHP warning: ``` file_get_contents(canvas/api/v0/auto-saves/js/asset_library/global): Failed to open stream: No such file or directory in _locale_parse_js_file() (core/modules/locale/locale.module:771) ``` `locale` scans every JavaScript asset of type `file` on a page to extract `Drupal.t()` strings, reading each one with `file_get_contents()`. Canvas registered the draft asset library JS as a root-relative route URL, which the library parser classified as a local `file`. `locale` then tried… ### [feat(CLI Tool): Clean up the output of all CLI commands](https://git.drupalcode.org/project/canvas/-/merge_requests/1280) State: opened | Author: Bálint Kléri (balintbrews) | Branch: 3591712-cli-output-cleanup | 6437 diff lines Description: (Merge !1284 first.) Updates Canvas CLI output to use compact, line-oriented `@clack/prompts` reporting across commands. - Replaces table-style command summaries with readable status sections. - Improves `push` and `pull` success, partial failure, and error output. - Normalizes wording for brand kit, validation, preparation, uploads, and skipped work. - Removes the CLI `table` dependency. Reports done by a custom tool I vibe coded for testing the changes: https://balintbrews.github.io/canvas-cli-output-report Closes #3591712. Authored with an AI coding agent. ### [#3591654 "Update the delete link generation in ApiLayoutController.php to use canvas.api.config.translation.delete in the template context"](https://git.drupalcode.org/project/canvas/-/merge_requests/1234) State: merged 2026-06-24 | Author: Kunal Sachdev (kunal.sachdev) | Branch: 3591654-update-the-delete-link-generation-in-apilayoutcontrollerphp-to-use-canvasapiconfigtranslationdelete-in-the-template-context | 488 diff lines Description: ## Testing instructions - [ ] Enable the `canvas` `canvas_test_sdc` `language` `canvas_dev_translation` `content_translation` `config_translation` modules. - [ ] Visit `/admin/config/regional/language` and add French. - [ ] Create an Article. - [ ] Visit the Canvas editor and add a template for article full content. - [ ] Add a Heading/Hero component to the template and publish the template. - [ ] Verify that checkmark is displayed only for english language in language selector drop down in top bar. - [ ] Visit `admin/structure/content-template/node.article.full/translate` to translate the con… ### [fix(autoSave, internalHttpApi): #3591729 Register draft asset library JS as external so locale's JS scan skips it](https://git.drupalcode.org/project/canvas/-/merge_requests/1292) State: closed | Author: Christian López Espínola (penyaskito) | Branch: 3591729-draft-asset-library-js-asset-registered-as-a-file-triggers-file-get-contents-warning-in-locales-js-scan Description: ### Overview On a multilingual site, page renders that include a Canvas asset library draft emit a PHP warning: ``` file_get_contents(canvas/api/v0/auto-saves/js/asset_library/global): Failed to open stream: No such file or directory in _locale_parse_js_file() (core/modules/locale/locale.module:771) ``` `locale` scans every JavaScript asset of type `file` on a page to extract `Drupal.t()` strings, reading each one with `file_get_contents()`. Canvas registered the draft asset library JS as a root-relative route URL, which the library parser classified as a local `file`. `locale` then tried… ### [feat(Conflict detection): #3591601 "Conflict resolution via API call and layout endpoint support for published entities"](https://git.drupalcode.org/project/canvas/-/merge_requests/1194) State: opened | Author: Feliksas Mazeikis (f.mazeikis) | Branch: 3591601-rudimentary-conflict-resolution-ui-be | 1041 diff lines Description: **TL;DR:** Modifies the `ApiContentAutoSaveControllers::patch()` to allow updating auto-save item conflict as resolved; Adds optional argument to the `ApiLayoutController::get()` that allows fetching layout of a published entity. **Long version:** This MR adds "Ability to resolve conflict by keeping changes in the auto-save" and an "ability to load the visual preview of both auto-save and published version of the entity with conflict" capability described in the https://git.drupalcode.org/project/canvas/-/milestones/3 milestone. It is BE implementation of #3591601 and BE dependency of !11… ### [feat: #3518272 support all entity types with configurable displays for content templates](https://git.drupalcode.org/project/canvas/-/merge_requests/791) State: opened | Author: Adam G-H (phenaproxima) | Branch: 3518272-field-ui-base-route | 1702 diff lines Description: Closes #3518272 ### [Issue #3591652: Replace hardcoded component source plugin IDs with SOURCE_PLUGIN_ID constants](https://git.drupalcode.org/project/canvas/-/merge_requests/1255) State: merged 2026-06-25 | Author: Abhishek Dhariwal (adaptative) | Branch: 3591652-remove-hardcoded-source-ids | 88 diff lines Description: Follow-up to #3573571 (MR !606), addressing https://git.drupalcode.org/project/canvas/-/merge_requests/606#note_1080422 ### Summary `canvas_ai_post_update_0005_normalize_component_description_settings()` listed the allowed component source plugin IDs as literal strings (`['sdc', 'js', 'block']`). This replaces them with the existing source plugin constants: - `SingleDirectoryComponent::SOURCE_PLUGIN_ID` - `JsComponent::SOURCE_PLUGIN_ID` - `BlockComponent::SOURCE_PLUGIN_ID` The values are unchanged, so the update hook behaves identically. Only `modules/canvas_ai/canvas_ai.post_update.php` ch… ### [#3591714: Resolve "Translating unpublished page crashes canvas"](https://git.drupalcode.org/project/canvas/-/merge_requests/1282) State: opened | Author: Kunal Sachdev (kunal.sachdev) | Branch: 3591714-translating-unpublished-page-crashes-canvas | 298 diff lines Description: [Description of changes] ## Testing instructions - [ ] First step for someone to test the changes in this MR Closes #3591714 ### [Issues/3569120: Canvas AI: Expose Props of Blocks to the Agent.](https://git.drupalcode.org/project/canvas/-/merge_requests/498) State: opened | Author: AKHIL BABU (AkhilBabu) | Branch: 3569120-canvas-ai-expose | 272 diff lines Description: Closes #3569120 ### [Issues/Canvas AI: An unexpected error has occurred while rendering preview](https://git.drupalcode.org/project/canvas/-/merge_requests/813) State: opened | Author: AKHIL BABU (AkhilBabu) | Branch: 3556922-canvas-ai-an | 278 diff lines Description: Closes #3556922 ### [feat(Conflict detection): #3587526 "Detect conflicts during publishing of changes to Page entity"](https://git.drupalcode.org/project/canvas/-/merge_requests/1193) State: opened | Author: Feliksas Mazeikis (f.mazeikis) | Branch: 3587526-prevention-of-publishing-be | 774 diff lines Description: **TL;DR:** Adds `HTTP 409` response to the "publish auto-save items" endpoint; Prevents publishing on the BE if [a conflict is detected](https://git.drupalcode.org/project/canvas/-/merge_requests/1213); **For people with attention span or AI summary tools:** This MR adds "Prevent publishing of auto-save items with detected conflicts on BE" capability described in the "\[META\] Review of changes and Conflict resolution" (https://git.drupalcode.org/project/canvas/-/work_items/3587587). It is BE implementation of https://git.drupalcode.org/project/canvas/-/work_items/3587526 and counter-part o… ### [Draft: feat(Conflict detection): #3591668 "Text-based Page entity representation via Canvas API"](https://git.drupalcode.org/project/canvas/-/merge_requests/1241) State: opened | Author: Feliksas Mazeikis (f.mazeikis) | Branch: 3591668-text-based-comparison-of-entities | 305 diff lines Description: **TL;DR:** Adds a new endpoint that provides Page entity in text-based format using default content exporter in core. For people with attention span or AI summary tools: BE part of "#3591668+" which is part of the "\[META\] Review of changes and Conflict resolution (https://git.drupalcode.org/project/canvas/-/work_items/3587587)". Adds the BE infrastructure required for the "Comparison of entities using text-based representation in side-by-side UI" capability. To keep the scope manageable, changes are limited to `Page` (`canvas_page`) entities. Effort is made to leave path open for other en… ### [Fix Canvas AI prompt reset on metadata changes](https://git.drupalcode.org/project/canvas/-/merge_requests/530) State: opened | Author: scott falconer (scottfalconer) | Branch: 3558257-changing-metadata-clears | 896 diff lines Description: ## Issue https://www.drupal.org/project/canvas/issues/3558257 ## Root cause `DeepChat` received inline object and function props — `images`, `requestBodyLimits`, the `connect` handler, and the style objects — recreated on every render. Editing page metadata re-rendered the component, so `DeepChat` saw new prop references, rebuilt its input, and cleared the typed prompt. ## Change - Memoize `DeepChat` and pass stable references. - Move static props to module-scope constants. - Move the `connect` handler into `useCallback`; it reads the latest values via refs. - Back the `onComponentRender` gu… --- COMMITS (24h) --- - [595b4dc1](https://git.drupalcode.org/project/canvas/-/commit/595b4dc19f98309910ee6e9987cab0af6af5abb8) chore(Data model): #3591726 Component inputs order is database-backend-dependent: fix inputs key order assertions in tests and enforce it via PHPStan when possible — Christian López Espínola (2026-06-26T02:30:30.000+00:00) - [47da2b21](https://git.drupalcode.org/project/canvas/-/commit/47da2b211e2078afdb511071b57358cccad2e2b1) chore(Conflict detection): #3591725 Put conflict detection behind a dev mode flag — Feliksas Mazeikis (2026-06-25T22:12:11.000+00:00) - [49f7adb9](https://git.drupalcode.org/project/canvas/-/commit/49f7adb95f192213d48b712762fc07666615aa1c) feat(Data model, translation): #3591596 Symmetric translation: component instance version updates must propagate to all translations — Wim Leers (2026-06-25T21:49:51.000+00:00) - [3c5876ae](https://git.drupalcode.org/project/canvas/-/commit/3c5876ae084ecc76665f2a0bbaf17d30bb055095) fix(autoSave, internalHttpApi): #3591729 Draft asset library JS asset registered as a file triggers file_get_contents() warning in locale's JS scan — Christian López Espínola (2026-06-25T20:09:09.000+00:00) - [8bf3d75f](https://git.drupalcode.org/project/canvas/-/commit/8bf3d75ff5edd885197515d4946faebf5662c2e1) fix(CLI Tool): #3591717 Flat named component validation in @drupal-canvas/eslint-config misses sibling entrypoints — Bálint Kléri (2026-06-25T17:36:42.000+00:00) - [2d14167b](https://git.drupalcode.org/project/canvas/-/commit/2d14167b78f237255d5f3b4e35c8ba7f84bf6239) fix(AI): #3591660 Canvas AI: Fix orchestrator UUID lost by setData(); add UUID recovery — Matt Glaman (2026-06-25T17:29:04.000+00:00) - [bade3e9d](https://git.drupalcode.org/project/canvas/-/commit/bade3e9d55d1c637e52defe5fa6edd3d900c2dc5) refactor(AI): #3591652 Canvas AI: replace hardcoded component source IDs with SOURCE_PLUGIN_ID constants — Abhishek Dhariwal (2026-06-25T11:48:03.000+00:00) ======================================================================== ## [15] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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

                      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). ### [Add full view layout for context item canonical and revision pages based on new design](https://git.drupalcode.org/project/ai_context/-/work_items/3586220) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 10 Description: ## Problem/motivation Follow-up to: #3586141 ### Summary Replace the default field-list entity view at `/admin/ai/context/items/{id}` with a designed **full** view mode: two-column layout (main content + sidebar), scope/subcontext details, and subcontext navigation. The same layout is used on revision view routes. ### Design and walkthrough There is a new design for the context view page based on UX review and feedback. ### Problem The canonical context item page rendered the default entity view display — a plain field list that was hard to scan and did not surface scope, subconte… ### [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-06-25 | Author: project update bot (Project-Update-Bot) | Assigned: unassigned | Labels: AI Context Management, AI Innovation, category::feature, priority::normal 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… ### [Question about "Subcontext type = Conditional - included based on relevance"](https://git.drupalcode.org/project/ai_context/-/work_items/3586149) State: closed | Updated: 2026-06-25 | Author: Michael Anello (ultimike) | Assigned: unassigned | Labels: AI Initiative Sprint, category::support, priority::normal, what::miscellaneous Description: I think this is more of a documentation issue/task, but I wanted to surface it regardless. When creating a Subcontext item, and "Subcontext type = Conditional - included based on relevance", does that mean that it will only be used if the LLM deems it worthy for inclusion via its "Purpose" content? thanks, -mike ### [Fix PHPStan failures in CCC](https://git.drupalcode.org/project/ai_context/-/work_items/3586238) State: closed | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 10 Description: ## Fix PHPStan failures in ai_context **Type:** Code quality **PHPStan level:** 2 **Status:** `./lint.sh` fails with **16 errors** ### Reproduce ```bash php -d memory_limit=512M vendor/bin/phpstan analyze web/modules/custom/ai_context \ --configuration=web/modules/custom/ai_context/phpstan.neon.dist ``` ### Errors (3 groups) **1. Entity field typing (1)** — `src/Entity/AiContextItem.php:270` `FieldDefinitionInterface` has no `setLabel()`. Narrow to `BaseFieldDefinition` before chaining setters. **2. Diff builder return types (5)** — `DynamicEntityReferenceFieldBuilder.php` (4), `… ### [No public API for building scope subscription forms; consumers must depend on the internal scope manager](https://git.drupalcode.org/project/ai_context/-/work_items/3586287) State: closed | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Description: ## Problem/Motivation There is no supported way for a contrib module to render a scope-subscription UI (the "subscribe to these scope values" widget) outside of an AI agent. The only mechanism is `plugin.manager.ai_context_scope`, which `docs/developers/api-stability.md` explicitly lists as **internal**. As a result, any non-agent consumer that wants per-entity scope subscriptions must reimplement the logic already living in `AiContextAgentForm`: - iterate `getScopePlugins()`, skip disabled / `!supportsSubscriptions()` plugins, - call `buildValueForm(..., for_subscription: TRUE)` per plugin… ### [Add Configure Link in Modules Page](https://git.drupalcode.org/project/ai_context/-/work_items/3586285) State: closed | Updated: 2026-06-25 | Author: Rob Loach (robloach) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Description: ## Summary On the module page, add a Configure link on the Context Control Center. ## Problem When you look at the module page, it's nice to have Configure links for each module, because then you can get to the pages quickly in a standard UX pattern. ## Proposed solution *(optional)* Add the Configure links on the Context Control Center modules. ## Workaround *(optional)* Visiting `admin/index` and finding the link from there. ## Affected functional areas *(optional)* Administration UI > [!note] > Check the one that best describes your usage, or leave all unchecked if AI was … ### [Copy and layout updates on context item scope form](https://git.drupalcode.org/project/ai_context/-/work_items/3586284) State: closed | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Description: ## Problem/motivation Follow-up to: #3586196+s **_Note that some of these things may have already been implemented in separate issues._** The **Context Scope** section on the context item edit form needs a few small copy and layout tweaks: clearer help text, less clutter, and a more logical order for the summary badges. No matching logic or scope model changes — just form presentation. ## Solution ### Context item form - [x] Remove the **Context Scope Settings** link from the section description. - [x] Update the section description to: > Control when this context item is included. … ### [`hook_ai_context_scope_values_alter()` is ignored by scope forms and labels](https://git.drupalcode.org/project/ai_context/-/work_items/3586286) State: closed | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: blocker::stable, category::bug, priority::major, state::accepted Description: ## Problem/Motivation `hook_ai_context_scope_values_alter()` is documented (in `ai_context.module` and `docs/developers/hooks.md`) to alter scope values "for display in forms or for matching." In practice it does neither. The alter is only invoked in `AiContextScopeManager::getAllScopeValues()`, which no form or resolver calls: - **Forms** (`AiContextItemForm`, `AiContextAgentForm`) build scope widgets via `$plugin->buildValueForm()`, which reads raw `AiContextScopeBase::getValues()` — the alter never runs. A value added by the hook (e.g. a custom `use_case`) cannot be selected in the UI. -… ### [Fix phpstan error in AiContextSubcontextToggleTrait](https://git.drupalcode.org/project/ai_context/-/work_items/3586259) State: closed | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 11 Description: ## Problem On local, running ./lint.sh on 1.0.x, phpstan errors show up but the pipeline was green ``` Running phpstan (static analysis)... 165/165 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100% ------ ------------------------------------------------------------------------------------------------------------- Line src/Service/AiContextSubcontextToggleTrait.php (in context of class Drupal\ai_context\Entity\AiContextItem) ------ ------------------------------------------------------------------------------------------------------------- 31 Call to an undefined method Drupal\Core\Typed… ### [CCC UX sync 27 May 2026](https://git.drupalcode.org/project/ai_context/-/work_items/3586236) State: closed | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 10 Description: ## Problem/motivation We have a lot of important UX issues to cover including: - https://git.drupalcode.org/project/ai_context/-/work_items/3586220 - https://git.drupalcode.org/project/ai_context/-/work_items/3586219 - https://git.drupalcode.org/project/ai_context/-/work_items/3586228 - https://git.drupalcode.org/project/ai_context/-/work_items/3586214 - https://git.drupalcode.org/project/ai_context/-/work_items/3586229 - https://git.drupalcode.org/project/ai_context/-/work_items/3586198 - https://git.drupalcode.org/project/ai_context/-/work_items/3586197 - https://git.drupalcode.org/project… ### [Improve conditional subcontext disabled-state behavior and admin UX](https://git.drupalcode.org/project/ai_context/-/work_items/3586292) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Innovation, AI Sprint 13, category::task Description: ## Description Follow-up to: #3586207+s ### Summary When **Enable conditional subcontext AI decisions** (`conditional_subcontext_enabled`) is off, conditional subcontext children should not participate in normal context selection. This issue implements that behavior and adds admin UX so editors understand why conditional items are inactive, can reach the setting to re-enable the feature, and get clear warnings when editing affected items. ### Problem / motivation Previously, disabling conditional subcontext AI caused **all conditional children to be included without an AI call**. That wa… ### [Error when running database updates from beta2 to latest -dev](https://git.drupalcode.org/project/ai_context/-/work_items/3586290) State: opened | Updated: 2026-06-25 | Author: Michael Anello (ultimike) | Assigned: unassigned | Labels: Description: I just tried running `drush updb` on a site that previously had CCC beta2 and now has the latest -dev. Most of the updates ran fine, but I couldn't get past this one: ``` $ ddev drush updb ------------ ----------------------------------- ------------- ------------------------------------------------------- Module Update ID Type Description ------------ ----------------------------------- ------------- ------------------------------------------------------- ai_context 0002_install_default_view_displa… ### [[Feature] Add ExternalContextProviderInterface and ContextQueryInterface to support RAG/vector store integrations](https://git.drupalcode.org/project/ai_context/-/work_items/3586289) State: opened | Updated: 2026-06-25 | Author: josecarlosmedero | Assigned: unassigned | Labels: AI Context Management, AI Innovation, AI Sprint 13, blocker::stable Description: ## Summary Follow-up to: #3586257+s ## Problem We built an external RAG integration on top of CCC (AI Knowledge Connector — a vector store + semantic retrieval module for Drupal 11) and hit three specific API gaps that currently require workarounds. We're raising these before rc1 so the team can evaluate whether a formal API would be worth adding to make the integration pattern stable and documented for the ecosystem. The current workaround path works (we're using `BuildSystemPromptEvent`) but it's fragile across agent types, bypasses CCC's token limit logic, and gives no observability … ### [Add #[RunTestsInSeparateProcesses] attribute to all kernel test classes](https://git.drupalcode.org/project/ai_context/-/work_items/3586280) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Description Drupal 11.3 deprecates kernel test classes that do not declare the PHPUnit `#[RunTestsInSeparateProcesses]` attribute. From Drupal 12.0, missing the attribute will throw an exception ([change record](https://www.drupal.org/node/3548485)). The ai_context module currently has **4 of 39** kernel test classes with the attribute: - `AiContextChildrenServiceTest` - `AiContextItemFormGlobalCountTest` - `AiContextTextFieldMigrationTest` - `AiContextUpdate10010Test` The remaining **35** kernel test classes need: ```php use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses; #… ### [Introduce explicit scope types and item inclusion modes; clarify selection in UI and docs](https://git.drupalcode.org/project/ai_context/-/work_items/3586281) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Summary Follow-up to: - #3586243+s - #3586270+s - #3586196+s _**The two decisions still worth locking before this lands: **(1)** `type` derived vs declared, and **(2)** Entity bundle's default inclusion mode.**_ **Builds on (must land first):** #3586243+s — the scope plugin persistence API and capability-flag refactor. **Keep in mind when architecting:** #3586197+s — boundaries / exclusions builds on this. Beta feedback shows site builders don't have an accurate mental model of how context **scopes** decide what actually reaches an agent's prompt. After #3586243 the *plumbing* is clea… ### [Promote Document Loader: Context Importer from experimental to stable](https://git.drupalcode.org/project/ai_context/-/work_items/3586282) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Description Follow-up to: #3586275+s canvas#3575644+s ### Summary The `ai_context_document_loader` submodule (Document Loader: Context Importer) is currently marked `lifecycle: experimental`. The initial integration work is largely complete: upstream dependencies are on stable constraints (`document_loader:^2.0.3`, `ai_file_to_text:^1.0`), and temporary Document Loader Composer patches have been removed. Before removing the experimental lifecycle flag, we should close out documentation, testing, and install-behavior follow-ups. The Canvas StringLongItemOverride patch ([#3575644](https:… ### [Update project page to make it more clear that CCC is for agents](https://git.drupalcode.org/project/ai_context/-/work_items/3586278) State: opened | Updated: 2026-06-25 | Author: Michael Anello (ultimike) | Assigned: unassigned | Labels: AI Context Management, AI Innovation, AI Sprint 13, AI UX Description: Via https://git.drupalcode.org/project/ai_context/-/work_items/3586270#note_1263889, I think the main CCC project page description should be super-clear that CCC is currently designed to only work with AI agents and not other AI-related tasks. At the very least, I suggest the first sentence of the project description on https://www.drupal.org/project/ai_context be changed from: > Context Control Center (CCC) helps Drupal AI use your content, rules, and standards to deliver more accurate, relevant results. to > Context Control Center (CCC) helps Drupal AI **agents** use your content, rules,… ### [CCC beta / pre-rc1 community testing](https://git.drupalcode.org/project/ai_context/-/work_items/3586234) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: Michael Anello (ultimike) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 11 Description: ## Problem/motivation We want to get feedback from the community on CCC as we want to lock down our features soon so we can release rc1 and ultimately 1.0 soon. ## Solution Recruit CCC testers to help with this. ## Resources - [Project page](https://www.drupal.org/project/ai_context) - [Setup instructions](https://www.drupal.org/project/ai_context#install-testing-steps) - [Documentation](https://git.drupalcode.org/project/ai_context/-/tree/1.0.x/docs?ref_type=heads) - [NYC AI summit session](https://drupal.tv/events/drupal-ai-summit-new-york-city-2026/context-driven-ai-consistent-complian… ### [Test AI Best Practices skills on AI Context codebase](https://git.drupalcode.org/project/ai_context/-/work_items/3586258) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Description: ## Problem/motivation We have a project with skills (among other things) to help with Drupal coding called [AI Best Practices](https://www.drupal.org/project/ai_best_practices). AI Context (CCC) development heavily uses AI assigned and generated code. It may benefit from using the best practice skills. Right now there are these skills: - drupal-accessibility - drupal-automated-testing - drupal-configuration - drupal-expert-corrections - drupal-gitlab - drupal-render-pipeline - drupal-writing-documentation ## Solution Install skills from AI Best Practices and run a through code review with… ### [Rename entity bundle and target entity scope plugins for better DX](https://git.drupalcode.org/project/ai_context/-/work_items/3586276) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: Tamas Balog (tbalog) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 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… ### [Allow subcontext scope to override parent scope](https://git.drupalcode.org/project/ai_context/-/work_items/3586218) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 10 Description: ## Problem/motivation Follow-up to: #3576092 ## Solution From the other issue: Discussion with Emma+Aidan at UX sync: - Toggle (true/false) is defaulted to "Same as parent" (true) right above Global and then hide all of them - Description: "Disable to customize scope." Here's a [plan from cursor](https://www.drupal.org/files/issues/2026-04-21/subcontext_scope_inheritance_51216439.plan_.md) that can be updated to reflect ^ ## Tasks - [x] Add code - [x] Review code - [ ] Manually test code ## AI usage - [ ] AI assisted issue - [ ] AI assisted code - [x] AI generated code ### [[Discuss] Moderation status of subcontext vs parent context items](https://git.drupalcode.org/project/ai_context/-/work_items/3586264) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Description: ## Problem/motivation You can unpublish a parent context item while having published subcontext items. ## Solution Discuss what makes sense for the moderation of parent/child items. ## Tasks - [x] Discuss and decide on behavior - [x] ~~Create follow-up issues as needed~~ (did MR on this issue) ### [Finalize Context Importer naming and review Extensions page UI/UX](https://git.drupalcode.org/project/ai_context/-/work_items/3586283) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Description: ## Description Follow-up to: #3586275+s Required for: #3586282+s ### Summary [#3586275](https://www.drupal.org/project/ai_context/issues/3586275) introduced the `ai_context_document_loader` submodule and a reworked **Settings → Extensions** page (`/admin/config/ai/context/settings/extensions`). Initial UX feedback has been considered, but needs refinement. For now, the submodule has been renamed from “Document Loader: Markdown Importer” to **“Document Loader: Context Importer”**. Before the submodule stabilization follow-up (experimental → stable) (#3586282), we need a focused pass to *… ### [Possible UX improvements on new context listing page](https://git.drupalcode.org/project/ai_context/-/work_items/3586274) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Description: ## Problem/motivation Follow up to: #3586219 Pasting from UX review call on 17 June: 1. Collapse Use Cases and Scope columns Order pills in order shown on the edit page (e.g. Use Cases first) 2. Filters - Remove Use Cases filter - Change how Scope filter works - One dropdown with the scope names, e.g. Use Cases, Site Sections, etc (ordered by order on edit page) - Dropdown defaults to "All" - Second dropdown that shows the values from what you choose from first drop down - All shows all values like now - if you choose a specific scope name, then it will restrict to that one, e… --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/ai_context/-/merge_requests/175) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 2451 diff lines Description: Relates to #3586269. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [16] stripNameAttribution:ai_context ======================================================================== 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 ---

                        Context Control Center (CCC)

                        Four issues were closed during the reporting period, primarily addressing code quality and API refinements. Fix PHPStan failures in CCC resolved 16 static analysis errors across entity field typing, diff builder return types, and interface inheritance issues. Fix phpstan error in AiContextSubcontextToggleTrait corrected an undefined method call in the toggle trait. Two API issues were also closed: No public API for building scope subscription forms addressed the lack of a supported mechanism for contrib modules to render scope-subscription UIs outside of agents, and hook_ai_context_scope_values_alter() is ignored by scope forms and labels fixed the documented alter hook being bypassed by forms and resolvers.

                        Administrative improvements were also closed: Add Configure Link in Modules Page added standard configuration links, and Copy and layout updates on context item scope form refined help text and badge ordering in the Context Scope section.

                        Several issues remain open as the project moves toward rc1, including Add full view layout for context item canonical and revision pages, Introduce explicit scope types and item inclusion modes, and [Feature] Add ExternalContextProviderInterface and ContextQueryInterface to support RAG/vector store integrations, which proposes formal APIs for external retrieval-augmented generation integrations.

                        How can I help on this project?

                        Review the open Automated Project Update Bot fixes merge request for Drupal 12 compatibility. Pick up Add #[RunTestsInSeparateProcesses] attribute to all kernel test classes, which needs the attribute added to 35 remaining kernel tests. Help test beta releases via CCC beta / pre-rc1 community testing.

                        Contributors: project update bot (Project-Update-Bot) ======================================================================== ## [17] summariseModule:ai_dashboard:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI Dashboard (machine name: ai_dashboard) Reporting period: last 24h (2026-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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: Rob Loach (robloach)". 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 Dashboard

                        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). ### [Improve AI Ecosystem](https://git.drupalcode.org/project/ai_dashboard/-/work_items/3585220) State: opened | Updated: 2026-06-26 | Author: Rob Loach (robloach) | Assigned: Rob Loach (robloach) | Labels: documentation Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !24 [Issue #3585220: Improve AI Ecosystem](https://git.drupalcode.org/project/ai_dashboard/-/merge_requests/24) | State: opened | Author: Rob Loach (robloach), 7674 diff lines Description: https://ai-dashboard-41c651.pages.drupalcode.org/ecosystem/ - [x] I find the Zensical CSS makes the font pretty small, and hard to see the "Filter". Could be tweaked. - [x] We could likely use the JSON manifest from this directly in the AI Dashboard module itself to allow users to browse modules from their own site - [ ] Need to add a cron rebuild process to grab the new modules from Drupal.org - [ ] The Category detection could use more tweaks. Uses the Name and Description, and when it can't find an appropriate one, it fallsback to Utility. - [ ] Add a column for whether or not the module i… ### [AI Recipe modal is missing the argument](https://git.drupalcode.org/project/ai_dashboard/-/work_items/3585216) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::bug, priority::normal, state::postponed, userInterface Description: >>> [!note] Migrated issue Reported by: [ro-no-lo](https://www.drupal.org/user/174449) Related to !18 >>> When I scroll to the "Features" Section I see 7 results: AI Assistent, AI Image Classification, AI SEO Optimizer, etc. When I click ANY "View Commands" button I see this: cd /Users/foobar/code/mypage.ai/Applications/barfoo/bin/php/php8.3.0/bin/php /Users/foobar/code/mypage.ai/core/scripts/drupal recipe When executing via vendor/bin/drush recipe or as noted in the modal I get Not enough arguments (missing: "path"). So any button is currently useless or incomplete. I have no idea what t… --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- (none) ======================================================================== ## [18] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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: Artem Dmitriiev (a.dmitriiev)". 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 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). ### [Batch embeddings for improved indexing performance](https://git.drupalcode.org/project/ai_search/-/work_items/3584024) State: opened | Updated: 2026-06-25 | Author: Artem Dmitriiev (a.dmitriiev) | Assigned: Sergiu Nagailic (Nikro) | Labels: AI Initiative Sprint, AI Product Development, category::feature, code 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. --- MERGE REQUESTS (24h) --- ### [Resolve "Batch embeddings for improved indexing performance"](https://git.drupalcode.org/project/ai_search/-/merge_requests/53) State: opened | Author: Artem Dmitriiev (a.dmitriiev) | Branch: 3584024-batch-embeddings-for-improved-indexing-performance | 732 diff lines Description: Closes #3584024 --- COMMITS (24h) --- (none) ======================================================================== ## [19] summariseModule:field_widget_actions:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Field Widget Actions (machine name: field_widget_actions) Reporting period: last 24h (2026-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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: Edward Zwart (ezeedub) [1], Scott Euser (scotteuser)". 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

                            Field Widget Actions

                            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). ### [Allow other contrib modules to mark their field widgets as childless so FWA actions still appear](https://git.drupalcode.org/project/field_widget_actions/-/work_items/3578202) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::feature, code, priority::normal, state::needsReview Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !26 [Resolve "Allow other contrib modules to mark their field widgets as childless so FWA actions still appear"](https://git.drupalcode.org/project/field_widget_actions/-/merge_requests/26) | State: opened | Author: Scott Euser (scotteuser), 221 diff lines Description: >>> [!note] Migrated issue Reported by: [scott_euser](https://www.drupal.org/user/3267594) >>> Problem/Motivation As discussed in #3563961 and #3546465, field widget type dependencies (like `chosen_select` or `tagify`) are currently hard-coded as 'childless' elements for Field Widget Action plugins. Childless elements need wrapping in a parent in order for the FWA button to show up. There does not seem to be a straightforward way to detect whether a field widget has a {{ children }} element being output. Steps to reproduce Attempt to enable a Field Widget Action on a custom or unlisted fi… ### [Add interactive refinement capability to Field Widget Actions](https://git.drupalcode.org/project/field_widget_actions/-/work_items/3547306) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, category::feature, code Description: >>> [!note] Migrated issue Reported by: [ezeedub](https://www.drupal.org/user/633844) Related to !893 >>> Problem/Motivation Currently, Field Widget Actions provide excellent automation for content generation, but once an automator generates content, users have limited options for refinement without manually editing or re-running the entire automator process. This creates a gap between fully automated content generation and user-controlled refinement. Users often want to iteratively improve AI-generated content with additional context or refinement instructions (e.g., "make it shorter", "… ### [Support for checkboxes/radio buttons using Ajax JS Commands](https://git.drupalcode.org/project/field_widget_actions/-/work_items/3578204) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::feature, code, priority::normal, state::needsReview Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !25 [Resolve "Support for checkboxes/radio buttons using Ajax JS Commands"](https://git.drupalcode.org/project/field_widget_actions/-/merge_requests/25) | State: opened | Author: Scott Euser (scotteuser), 433 diff lines Description: >>> [!note] Migrated issue Reported by: [scott_euser](https://www.drupal.org/user/3267594) >>> Problem/Motivation Support for Checkboxes and Radios was deferred from #3563961: Support select type widgets (select, tagify, etc) using ajax JS commands because they require a different field widget setup. Steps to reproduce Attempt to use Field Widget Actions that need JS commands to fill checkbox or radio input fields. Proposed resolution Implement FWA support specifically for Checkboxes/Radios widgets. Remaining tasks Create MR and add test coverage. User interface changes N/A API changes N/A… --- MERGE REQUESTS (24h) --- ### [Issue #3547306: Add interactive refinement capability to Field Widget Actions](https://git.drupalcode.org/project/field_widget_actions/-/merge_requests/19) State: merged 2026-06-25 | Author: Edward Zwart (ezeedub) | Branch: 3547306-interactive-refinement | 3775 diff lines Description: Adds opt-in **interactive refinement** to Field Widget Actions: when enabled, an action button opens a modal that shows the generated content, lets the user iteratively refine it with follow-up prompts, and then inserts the result into the field. Refinement is off by default — existing actions are unaffected. ## Approach Built on the server-side **Form API** modal (`FieldWidgetFormActionBase`), per maintainer feedback — no custom modal JavaScript or CSS. The generated content and the refinement prompt are ordinary form elements; clicking **Refine** rebuilds the modal server-side (the same wa… --- COMMITS (24h) --- - [69acdd60](https://git.drupalcode.org/project/field_widget_actions/-/commit/69acdd60d2250e309fdc1176d081d9e17a75af82) Issue #3547306: Add interactive refinement capability to Field Widget Actions — Edward Zwart (2026-06-25T09:58:36.000+00:00) ======================================================================== ## [20] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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 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). ### [Automated Drupal 12 compatibility fixes for ai_translate 2.0.x-dev](https://git.drupalcode.org/project/ai_translate/-/work_items/3585524) State: opened | Updated: 2026-06-25 | 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… --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/ai_translate/-/merge_requests/23) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 409 diff lines Description: Relates to #3585524. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [21] stripNameAttribution:ai_translate ======================================================================== 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 translate

                                The AI translate module saw automated Drupal 12 compatibility work this period. A merge request was opened to address deprecated API usage as part of Automated Drupal 12 compatibility fixes for ai_translate 2.0.x-dev. The Automated Project Update Bot fixes MR contains 409 lines of diff targeting compatibility updates for Drupal 12. No commits were merged during this period, and the compatibility work remains in progress.

                                How can I help on this project?

                                Review the Automated Project Update Bot fixes merge request to validate that the automated Drupal 12 compatibility changes are correct and do not introduce regressions. Test the changes against a Drupal 12 environment to confirm functionality is preserved.

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

                                ======================================================================== ## [22] summariseModule:ai_search_block:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI powered Search Block (machine name: ai_search_block) Reporting period: last 24h (2026-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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 powered Search Block

                                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_search_block/-/merge_requests/43) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 753 diff lines Description: Relates to #3606122. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [23] stripNameAttribution:ai_search_block ======================================================================== 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 powered Search Block

                                  Activity this period was limited to automated maintenance. A merge request titled Automated Project Update Bot fixes was opened, containing automated changes from the Project Update Bot with 753 lines of diff. The MR remains open and awaiting review. No commits were pushed during this period, and no issues saw activity in their comment threads.

                                  How can I help on this project?

                                  Review the open Automated Project Update Bot fixes merge request to verify the automated changes are appropriate. Check the issue queue for unassigned issues that need attention. Test the module with recent Drupal core versions to identify compatibility issues.

                                  Contributors: project update bot (Project-Update-Bot) ======================================================================== ## [24] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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

                                  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). ### [Automated Drupal 12 compatibility fixes for flowdrop 1.x-dev](https://git.drupalcode.org/project/flowdrop/-/work_items/3592077) State: opened | Updated: 2026-06-25 | 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… --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/flowdrop/-/merge_requests/11) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 4588 diff lines Description: Relates to #3592077. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [25] stripNameAttribution:flowdrop ======================================================================== 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 ---

                                    FlowDrop

                                    Activity this period focused on Drupal 12 compatibility. An automated Drupal 12 compatibility fixes issue was opened, with a corresponding merge request created to address deprecated API usage. The MR contains 4588 lines of automated refactoring changes and remains open for review. No commits were merged during this period.

                                    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 correct and do not introduce regressions. Test the patched module against Drupal 12 to ensure functionality remains intact.

                                    Contributors: project update bot (Project-Update-Bot) ======================================================================== ## [26] summariseModule:flowdrop_ui_agents:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: FlowDrop UI Agents (machine name: flowdrop_ui_agents) Reporting period: last 24h (2026-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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

                                    FlowDrop UI 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 flowdrop_ui_agents 1.0.x-dev](https://git.drupalcode.org/project/flowdrop_ui_agents/-/work_items/3584958) State: opened | Updated: 2026-06-25 | 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… --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/flowdrop_ui_agents/-/merge_requests/27) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 232 diff lines Description: Relates to #3584958. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [27] stripNameAttribution:flowdrop_ui_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 ---

                                      FlowDrop UI Agents

                                      Activity this period focused on Drupal 12 compatibility preparation. An Automated Drupal 12 compatibility fixes for flowdrop_ui_agents 1.0.x-dev issue was opened to track automated removal of deprecated API uses. A corresponding merge request, Automated Project Update Bot fixes, was created with 232 lines of changes addressing these compatibility issues. The MR remains open and awaiting review. No commits were merged during this period, leaving the Drupal 12 compatibility work as the primary blocking item for forward progress.

                                      How can I help on this project?

                                      • Review the Automated Project Update Bot fixes MR to verify the automated Drupal 12 compatibility changes are correct and complete.
                                      • Test the MR against Drupal 12 development environments to identify any remaining deprecated API usage or compatibility issues.
                                      Contributors: project update bot (Project-Update-Bot) ======================================================================== ## [28] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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-06-25 | 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… --- 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 | 41 diff lines Description: Relates to #3590037. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [29] 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

                                        The AG-UI module saw automated Drupal 12 compatibility work during this period. An Automated Drupal 12 compatibility fixes for agui 1.0.x-dev issue was opened to track removal of deprecated API uses, with changes being posted periodically by the Project Update Bot. A corresponding merge request, Automated Project Update Bot fixes, was opened with 41 lines of diff addressing these compatibility concerns. The MR remains open and awaiting review. No commits were merged during this period.

                                        How can I help on this project?

                                        Review the Automated Project Update Bot fixes merge request to verify the Drupal 12 compatibility changes are correct and complete. Test the patched module against Drupal 12 to ensure no regressions are introduced by the automated changes.

                                        Contributors: project update bot (Project-Update-Bot) ======================================================================== ## [30] summariseModule:ai_related_content:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI Related Content (machine name: ai_related_content) Reporting period: last 24h (2026-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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), Scott Euser (scotteuser) [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

                                        AI Related Content

                                        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_related_content 2.0.x-dev](https://git.drupalcode.org/project/ai_related_content/-/work_items/3576575) State: opened | Updated: 2026-06-25 | 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… ### [Pinecone: fix `getVectorFromNode()` returning no results](https://git.drupalcode.org/project/ai_related_content/-/work_items/3576574) State: closed | Updated: 2026-06-25 | Author: Scott Euser (scotteuser) | Assigned: unassigned | Labels: category::bug, code, state::accepted Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !17 [Resolve "Pinecone: fix `getVectorFromNode()` returning no results" 2x](https://git.drupalcode.org/project/ai_related_content/-/merge_requests/17) | State: merged 2026-06-25 | Author: Scott Euser (scotteuser), 72 diff lines Description: **File:** `src/Plugin/views/filter/AIRelatedContentNodeFilter.php` **Problem:** Two bugs in `getVectorFromNode()` cause the related content view to return zero results when using Pinecone: 1. `addCondition('drupal_entity_id', ...)` is silently ignored by Pinecone because `drupal_entity_id` is not a Search API index field. Without a working filter, the query returns random semantic matches for "Title" — none of which pass the ID check — so `getVectorFromNode()` always returns `null` and the query is aborted. 2. The ID check used strict equality (`!==`), which would also fail for chunk-suffix… --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/ai_related_content/-/merge_requests/19) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 239 diff lines Description: Relates to #3576575. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. ### [Resolve "Pinecone: fix `getVectorFromNode()` returning no results" 1x](https://git.drupalcode.org/project/ai_related_content/-/merge_requests/18) State: merged 2026-06-25 | Author: Scott Euser (scotteuser) | Branch: 3576574-pinecone-fix | 47 diff lines Description: Closes #3576574 --- COMMITS (24h) --- - [7c135f78](https://git.drupalcode.org/project/ai_related_content/-/commit/7c135f78817c00faf2c8143dd2ae4f8207db7cfc) bug: #3576574 Pinecone: fix `getVectorFromNode()` returning no results — Scott Euser (2026-06-25T10:48:57.000+00:00) ======================================================================== ## [31] 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] Uninstalling ai_ckeditor leaves stale toolbar items in editor.editor.* configuration (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586570 [2] Config action to verify if any vector database is there and it is setup (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586517 [3] Batch embeddings for improved indexing performance (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3568648 [4] Improve ai_ckeditor UX when no provider modules are installed (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586549 [5] Add "throttle API requests" control? (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3561243 [6] [Discuss] Shift focus from provider plugins to operation type plugins in AI Core (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3559800 [7] Plugin shouldn't show any fields if no text is selected (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3557016 [8] Tools UI overview page does not load (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3579979 [9] Add a setup-guardrails agent skill to configure guardrails, guardrail sets, and global guardrails (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586561 [10] Move out AI Content Suggestions (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3552885 [11] AI CKEditor: Hardcoded “summarize” message shown for all plugins when no text is selected (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3575346 [12] [Discuss] Consider adding Agents.md (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3573186 [13] Drupal AI Contribution meeting 2026-02-09 (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3570259 [14] Create agents as Tools (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3556380 [15] Implement Process System Integration for Automators (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3493291 [16] [Discuss] Allow usage of Tool API in Agents (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3556140 [17] ai_ckeditor: Add option to show or hide the "AI Writer" status information (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586569 [18] Plan: Add cancel button to AI Chatbot (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3499583 [19] Use core Json::encode() and Json::decode everywhere possible (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3480683 [20] Move Prompt Library menu link under AI Infrastructure instead of Vector Database Configuration (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586499 [21] Prompt Library menu item missing due to incorrect parent (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3585596 [22] [Discuss] Core support for browser providers (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3577202 [23] Research better practices for recipes (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3577175 [24] Improvement suggestions for ai_automators docs (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3572751 [25] Create an HTML to Markdown API and service (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3574246 [26] Support the `ai_json_schema` element inside off-canvas dialogs (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586536 [27] Provide proper support for "unconfigured" AI provider state (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3572645 [28] Add an AI reranking processor for Search API (owned by the AI module) (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586543 [29] Clean up ai_observability settings form (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3574499 [30] [Research] Mechanism to force deprecated bundled submodules onto their contrib version (start with ai_validations) (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586538 [31] AI CKEditor regression in 1.5.x? (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586567 [32] Unable to override the 'Calling agents' / 'Contacting agents' text (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586389 [33] Glossary for the Drupal AI initiative (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3577844 [34] Add info about initiative and release differences to project page (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586568 [35] Generalize behaviour of FWA with Automators (AI Core v2) (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586515 [36] Issue when creating content and click on AI Assistant on Ckeditor (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586545 [37] Automated Drupal 12 compatibility fixes for ai 2.0.x-dev (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586525 [38] Fiber branch in OpenAiBasedProviderClientBase::chat() drops token usage from the reconstructed ChatOutput (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586522 [39] Allow vector database providers to opt in as the default VDB when none is set (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586500 [40] Use ai_provider_configuration form element in RestrictToTopic configuration form (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586472 [41] Issue #3586517: Check if any Vdb provider is setup (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1660 [42] feat(ai_ckeditor): warn users when no AI provider is installed in the CKEditor settings tab (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1701 [43] Issue #3568648: Batch embeddings as a first-class operation type (follow-up to !1704) (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1726 [44] task: #3586561 Add a setup-guardrails agent skill to configure guardrails,... (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1724 [45] Remove ai_content_suggestions module for ai core (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1042 [46] Issue #3585596: Move Prompt Library under AI Infrastrcture (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1522 [47] Issue #3585596: Move Prompt Library under AI Infrastrcture (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1521 [48] Issue #3585596: Move Prompt Library under AI Infrastrcture (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1523 [49] docs: #3572751 Add docs for the Field widget Actions automator worker (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1293 [50] Adding a new point about Automator Worker (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1187 [51] Adding a new point about Automator Worker (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1201 [52] feat: #3586538 Add hook_requirements and hook_update_10001 for ai_validations deprecation (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1725 [53] Issue #3586389: Add agent delegation message setting (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1539 [54] Draft: Fix lb asymetric translation (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1687 [55] Issue #3586522: Keep token usage in the chat() Fiber branch (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1723 [56] Issue #3586522: Keep token usage in the chat() Fiber branch (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1722 [57] Issue #3586522: Keep token usage in the chat() Fiber branch (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1719 [58] Issue #3586522: Keep token usage in the chat() Fiber branch (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1721 [59] Issue #3586522: Keep token usage in the chat() Fiber branch (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1720 [60] Issue #3586522: Keep token usage in the chat() Fiber branch (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1670 [61] Cherry-pick changes from #3586500 (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1718 [62] [META] 2026 Outside-in / Innovation Roadmap (draft) (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3576908 [63] Add standardized GitLab issue templates for initiative work (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3586461 [64] 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 [65] Automated Project Update Bot fixes (ai_integration_eca, MR) — https://git.drupalcode.org/project/ai_integration_eca/-/merge_requests/13 [66] add support for batch embeddings (ai_provider_openai, MR) — https://git.drupalcode.org/project/ai_provider_openai/-/merge_requests/59 [67] Automated Project Update Bot fixes (ai_provider_openai, MR) — https://git.drupalcode.org/project/ai_provider_openai/-/merge_requests/77 [68] pgsql ext dependency missing in composer.json (ai_provider_amazeeio, Issue) — https://git.drupalcode.org/project/ai_provider_amazeeio/-/work_items/3586235 [69] Automated Drupal 12 compatibility fixes for ai_provider_amazeeio 2.0.x-dev (ai_provider_amazeeio, Issue) — https://git.drupalcode.org/project/ai_provider_amazeeio/-/work_items/3586234 [70] fix(#3586231): check that key identifiers are non-empty strings before loading keys (ai_provider_amazeeio, MR) — https://git.drupalcode.org/project/ai_provider_amazeeio/-/merge_requests/74 [71] chore: require ext-pgsql (ai_provider_amazeeio, MR) — https://git.drupalcode.org/project/ai_provider_amazeeio/-/merge_requests/76 [72] Automated Project Update Bot fixes (ai_provider_amazeeio, MR) — https://git.drupalcode.org/project/ai_provider_amazeeio/-/merge_requests/77 [73] Automated Drupal 12 compatibility fixes for gemini_provider 1.x-dev (gemini_provider, Issue) — https://git.drupalcode.org/project/gemini_provider/-/work_items/3589187 [74] Automated Project Update Bot fixes (gemini_provider, MR) — https://git.drupalcode.org/project/gemini_provider/-/merge_requests/41 [75] add support for batching on indexing operations (ai_vdb_provider_milvus, MR) — https://git.drupalcode.org/project/ai_vdb_provider_milvus/-/merge_requests/44 [76] Automated Project Update Bot fixes (ai_vdb_provider_milvus, MR) — https://git.drupalcode.org/project/ai_vdb_provider_milvus/-/merge_requests/50 [77] Views agent: style/row and filters/filter_groups must be overridden as pairs on non-default displays (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3582782 [78] UpdateViewPlugins: display option updates on non-default displays do not override defaults inheritance (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3582781 [79] Fix streaming (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3577520 [80] Add limits on how often a tool can run (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3547995 [81] 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 [82] Exceptions in tool execute break the UI for the user (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3537123 [83] Automated Project Update Bot fixes (ai_agents, MR) — https://git.drupalcode.org/project/ai_agents/-/merge_requests/282 [84] tool:run masks the failure message: getOutputValues() throws on unset outputs of a failed tool (tool, Issue) — https://git.drupalcode.org/project/tool/-/work_items/3582942 [85] Dependency Dashboard (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591657 [86] Canvas icon / logo for Project Browser and project page (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3545468 [87] Component inputs order is database-backend-dependent: fix inputs key order assertions in tests and enforce it via PHPStan when possible (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591726 [88] Symmetric translation: component instance version updates must propagate to all translations (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591596 [89] Deduplicate the shared JavaScript component test fixture and prop-mutation helpers across the translation-propagation and component-instance-updater kernel tests (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591723 [90] Put conflict detection behind a dev mode flag (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591725 [91] Avoid registering draft asset-library JS URLs to prevent locale's js_alter from treating them as local files (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591719 [92] Draft asset library JS asset registered as a file triggers file_get_contents() warning in locale's JS scan (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591729 [93] Strengthen test coverage for multi-translation multi-component instance automatic version updating (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591730 [94] Flat named component validation in @drupal-canvas/eslint-config misses sibling entrypoints (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591717 [95] Canvas AI: canvas_ai_post_update_0003 strips the orchestrator agent UUID via setData() (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591660 [96] Use notifications to inform users about the detected conflicts (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591715 [97] Boolean props auto-enable when another prop is changed in the Canvas form (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591716 [98] Automated Drupal 12 compatibility fixes for canvas 1.x-dev (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591603 [99] Canvas AI: Component context required props missing required flag (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591655 [100] Canvas AI: Remove hardcoded component source IDs (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591652 [101] Canvas AI: An unexpected error has occurred while rendering preview (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3556922 [102] Refactor away the brittle`PageRegion::forAutoSaveData()` (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591728 [103] Add `canvas-validate-component-trees` Drupal CLI command to check health of Canvas component trees: validate every Canvas (content|config) entity, validate every content entity component tree field revision+translation (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591667 [104] Deleting optional props from an SDC/code component causes validation errors in config-defined component instances: regression for monolingual sites, bug for multilingual sites (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591727 [105] Symmetrically translatable config-defined component trees, STEP 2: change config schema type for `inputs` to allow translating via core's Config Translation UI for ContentTemplates & PageRegions (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3582478 [106] Changing Metadata Clears Canvas AI Prompt Text (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3558257 [107] Canvas AI: Expose Props of Blocks to the Agent (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3569120 [108] Canvas AI: UI/Functional update. Lock the canvas during a build and add a long-running AI-tasks UI element to the chat (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591724 [109] chore(deps): update dependency cspell to v10 (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1273 [110] chore(deps): update mysql docker tag to v8.3 (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1272 [111] fix(deps): update npm minor and patch (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1238 [112] Issue #3591726: Compare component inputs order-independently in tests and enforce it via PHPStan (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1291 [113] feat: #3591596 Apply component instance updater to all component trees: content/config non-default translations; introduce `StagedLanguageConfigOverride` to treat both similarly (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1271 [114] Put conflict detection behind feature flag (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1290 [115] fix(autoSave, internalHttpApi): #3591729 Register draft asset library JS as external so locale's JS scan skips it (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1293 [116] feat(CLI Tool): Clean up the output of all CLI commands (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1280 [117] #3591654 "Update the delete link generation in ApiLayoutController.php to use canvas.api.config.translation.delete in the template context" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1234 [118] fix(CLI Tool): #3591717 Flat named component validation in @drupal-canvas/eslint-config misses sibling entrypoints (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1284 [119] Issue #3591660: Preserve agent UUID in canvas_ai post_update 0003 and repair affected sites (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1230 [120] fix(autoSave, internalHttpApi): #3591729 Register draft asset library JS as external so locale's JS scan skips it (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1292 [121] feat(Conflict detection): #3591601 "Conflict resolution via API call and layout endpoint support for published entities" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1194 [122] feat: #3518272 support all entity types with configurable displays for content templates (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/791 [123] Issue #3591652: Replace hardcoded component source plugin IDs with SOURCE_PLUGIN_ID constants (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1255 [124] #3591714: Resolve "Translating unpublished page crashes canvas" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1282 [125] Issues/3569120: Canvas AI: Expose Props of Blocks to the Agent. (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/498 [126] Issues/Canvas AI: An unexpected error has occurred while rendering preview (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/813 [127] feat(Conflict detection): #3587526 "Detect conflicts during publishing of changes to Page entity" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1193 [128] Draft: feat(Conflict detection): #3591668 "Text-based Page entity representation via Canvas API" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1241 [129] Fix Canvas AI prompt reset on metadata changes (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/530 [130] Add full view layout for context item canonical and revision pages based on new design (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586220 [131] 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 [132] Question about "Subcontext type = Conditional - included based on relevance" (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586149 [133] Fix PHPStan failures in CCC (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586238 [134] No public API for building scope subscription forms; consumers must depend on the internal scope manager (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586287 [135] Add Configure Link in Modules Page (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586285 [136] Copy and layout updates on context item scope form (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586284 [137] `hook_ai_context_scope_values_alter()` is ignored by scope forms and labels (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586286 [138] Fix phpstan error in AiContextSubcontextToggleTrait (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586259 [139] CCC UX sync 27 May 2026 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586236 [140] Improve conditional subcontext disabled-state behavior and admin UX (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586292 [141] Error when running database updates from beta2 to latest -dev (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586290 [142] [Feature] Add ExternalContextProviderInterface and ContextQueryInterface to support RAG/vector store integrations (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586289 [143] Add #[RunTestsInSeparateProcesses] attribute to all kernel test classes (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586280 [144] Introduce explicit scope types and item inclusion modes; clarify selection in UI and docs (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586281 [145] Promote Document Loader: Context Importer from experimental to stable (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586282 [146] Update project page to make it more clear that CCC is for agents (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586278 [147] CCC beta / pre-rc1 community testing (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586234 [148] Test AI Best Practices skills on AI Context codebase (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586258 [149] Rename entity bundle and target entity scope plugins for better DX (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586276 [150] Allow subcontext scope to override parent scope (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586218 [151] [Discuss] Moderation status of subcontext vs parent context items (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586264 [152] Finalize Context Importer naming and review Extensions page UI/UX (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586283 [153] Possible UX improvements on new context listing page (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586274 [154] Automated Project Update Bot fixes (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/175 [155] Improve AI Ecosystem (ai_dashboard, Issue) — https://git.drupalcode.org/project/ai_dashboard/-/work_items/3585220 [156] AI Recipe modal is missing the argument (ai_dashboard, Issue) — https://git.drupalcode.org/project/ai_dashboard/-/work_items/3585216 [157] Issue #3585220: Improve AI Ecosystem (ai_dashboard, MR) — https://git.drupalcode.org/project/ai_dashboard/-/merge_requests/24 [158] Batch embeddings for improved indexing performance (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584024 [159] Resolve "Batch embeddings for improved indexing performance" (ai_search, MR) — https://git.drupalcode.org/project/ai_search/-/merge_requests/53 [160] Allow other contrib modules to mark their field widgets as childless so FWA actions still appear (field_widget_actions, Issue) — https://git.drupalcode.org/project/field_widget_actions/-/work_items/3578202 [161] Add interactive refinement capability to Field Widget Actions (field_widget_actions, Issue) — https://git.drupalcode.org/project/field_widget_actions/-/work_items/3547306 [162] Support for checkboxes/radio buttons using Ajax JS Commands (field_widget_actions, Issue) — https://git.drupalcode.org/project/field_widget_actions/-/work_items/3578204 [163] Resolve "Allow other contrib modules to mark their field widgets as childless so FWA actions still appear" (field_widget_actions, MR) — https://git.drupalcode.org/project/field_widget_actions/-/merge_requests/26 [164] Resolve "Support for checkboxes/radio buttons using Ajax JS Commands" (field_widget_actions, MR) — https://git.drupalcode.org/project/field_widget_actions/-/merge_requests/25 [165] Issue #3547306: Add interactive refinement capability to Field Widget Actions (field_widget_actions, MR) — https://git.drupalcode.org/project/field_widget_actions/-/merge_requests/19 [166] Automated Drupal 12 compatibility fixes for ai_translate 2.0.x-dev (ai_translate, Issue) — https://git.drupalcode.org/project/ai_translate/-/work_items/3585524 [167] Automated Project Update Bot fixes (ai_translate, MR) — https://git.drupalcode.org/project/ai_translate/-/merge_requests/23 [168] Automated Project Update Bot fixes (ai_search_block, MR) — https://git.drupalcode.org/project/ai_search_block/-/merge_requests/43 [169] Automated Drupal 12 compatibility fixes for flowdrop 1.x-dev (flowdrop, Issue) — https://git.drupalcode.org/project/flowdrop/-/work_items/3592077 [170] Automated Project Update Bot fixes (flowdrop, MR) — https://git.drupalcode.org/project/flowdrop/-/merge_requests/11 [171] Automated Drupal 12 compatibility fixes for flowdrop_ui_agents 1.0.x-dev (flowdrop_ui_agents, Issue) — https://git.drupalcode.org/project/flowdrop_ui_agents/-/work_items/3584958 [172] Automated Project Update Bot fixes (flowdrop_ui_agents, MR) — https://git.drupalcode.org/project/flowdrop_ui_agents/-/merge_requests/27 [173] Automated Drupal 12 compatibility fixes for agui 1.0.x-dev (agui, Issue) — https://git.drupalcode.org/project/agui/-/work_items/3590037 [174] Automated Project Update Bot fixes (agui, MR) — https://git.drupalcode.org/project/agui/-/merge_requests/30 [175] Automated Drupal 12 compatibility fixes for ai_related_content 2.0.x-dev (ai_related_content, Issue) — https://git.drupalcode.org/project/ai_related_content/-/work_items/3576575 [176] Pinecone: fix `getVectorFromNode()` returning no results (ai_related_content, Issue) — https://git.drupalcode.org/project/ai_related_content/-/work_items/3576574 [177] Automated Project Update Bot fixes (ai_related_content, MR) — https://git.drupalcode.org/project/ai_related_content/-/merge_requests/19 [178] Resolve "Pinecone: fix `getVectorFromNode()` returning no results" 2x (ai_related_content, MR) — https://git.drupalcode.org/project/ai_related_content/-/merge_requests/17 [179] Resolve "Pinecone: fix `getVectorFromNode()` returning no results" 1x (ai_related_content, MR) — https://git.drupalcode.org/project/ai_related_content/-/merge_requests/18 --- MODULE SUMMARIES ---

                                            AI (Artificial Intelligence)

                                            Several key fixes and infrastructure improvements were merged across the 1.x and 2.x branches. The Fiber branch token usage bug was resolved; the streaming chat path in OpenAiBasedProviderClientBase now correctly preserves token usage metadata when reconstructing ChatOutput objects. This fix was backported to 1.3.x, 1.4.x, 1.5.x, and 2.0.x.

                                            The Prompt Library menu link was moved out from under Vector Database Configuration and now lives directly under AI Infrastructure, where it belongs. The AI Content Suggestions module was removed from core and will continue as a standalone contrib project. Documentation for the Field Widget automator worker type was added to the ai_automators index.

                                            Open work includes MRs awaiting review for batch embeddings as a first-class operation type, which introduces a new BatchEmbeddingsInterface and ensures the operation receives events and logging, and improved UX when no provider is installed in ai_ckeditor. A proposal to verify if any vector database is configured via config actions also has an open MR. Progress remains blocked on defining a repeatable deprecation mechanism for bundled submodules being moved to contrib.

                                            How can I help on this project?

                                            Review MR !1726 for batch embeddings or MR !1701 for ai_ckeditor provider warnings. Tackle the Tools UI overview page crash, which has no MR and needs investigation. Help define the deprecation playbook in the ai_validations migration research issue.

                                            Contributors: Abhisek Mazumdar (abhisekmazumdar), Ahmad Khalil (ahmad-khalil-imagex), Ann Mary Sruthy (annmarysruthy), Arnaud Willame (arwillame), Artem Dmitriiev (a.dmitriiev), Dimitar Rupov (mrupal), Eric Homanchuk (erichomanchuk), Jérôme Tchania (codeitwisely) [1], m4olivei, Ricardo Castañeda (cadence96), Sujal Kshatri (sujal_31), Wolfgang Ziegler (fago)

                                            ---

                                            Drupal AI Initiative

                                            The AI Initiative saw organizational progress this period. The issue Add standardized GitLab issue templates for initiative work was closed, introducing a standardized set of GitLab issue templates to organize work across the initiative's four tracks (AI Core, AI Products, AI Marketing, and AI UX). These templates aim to provide consistent structure for coordination, research, decisions, meetings, and community activities.

                                            The [META] 2026 Outside-in / Innovation Roadmap (draft) continues active development. The roadmap focuses on optimizing Drupal for agents by providing a reliable, governable action surface with schema validation, permissions, workflow state, auditability, and blast-radius limits. The approach emphasizes outside-in design as a first-class requirement, assuming users will integrate external agents and orchestrators alongside built-in agents.

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

                                            How can I help on this project?

                                            • Review the roadmap meta issue to understand the initiative's technical direction and contribute feedback on the outside-in agent optimization approach.
                                            • Test the new GitLab issue templates across different work types and provide feedback on their usability for cross-track collaboration.
                                            ---

                                            AI Integration - ECA

                                            Activity this period focused on automated Drupal 12 compatibility preparation. The Automated Drupal 12 compatibility fixes for ai_integration_eca 1.0.x-dev issue was updated, with a corresponding Automated Project Update Bot fixes merge request opened to address deprecated API usage. The MR contains 210 diff lines targeting the 1.0.x-dev branch and awaits review. No commits were merged during this period, leaving the Drupal 12 compatibility work as the primary item requiring attention.

                                            How can I help on this project?

                                            Review the automated Drupal 12 compatibility MR to verify the proposed deprecation fixes are appropriate and don't introduce regressions. Manual testing of the changes against Drupal 12 development releases would help validate compatibility before merging.

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

                                            OpenAI Provider

                                            Two new merge requests were opened during the reporting period. Add support for batch embeddings introduces support for batched embeddings with 284 lines of changes. Separately, Automated Project Update Bot fixes was opened with 13 lines of automated maintenance updates. No merge requests were merged and no commits were pushed during this period.

                                            How can I help on this project?

                                            Review the batch embeddings MR to help move it toward merge. Test the 284-line changeset against realistic embedding workloads. Verify the automated fixes in MR 77 for any unintended side effects.

                                            Contributors: Paul Sheldrake (paulsheldrake), project update bot (Project-Update-Bot) ---

                                            amazee.ai Private AI Provider

                                            Two merge requests were merged during this period. The first addressed a bug where the module attempted to load encryption keys even when key identifiers were empty strings, leading to errors. The fix for checking that key identifiers are non-empty strings before loading keys was merged, preventing calls to the Key module with invalid values.

                                            The second merge added a missing dependency to composer.json. The ext-pgsql requirement was merged to resolve runtime errors when the PostgresPgvectorClient class attempted to call pg_connect() without the PostgreSQL extension loaded. This closed pgsql ext dependency missing in composer.json.

                                            A new automated merge request for Drupal 12 compatibility fixes was opened, containing 388 lines of changes to remove deprecated API uses. This work relates to ongoing Drupal 12 preparation tracked in Automated Drupal 12 compatibility fixes for ai_provider_amazeeio 2.0.x-dev.

                                            How can I help on this project?

                                            Review the automated Drupal 12 compatibility fixes merge request to verify the proposed deprecation removals are correct and do not introduce regressions. Test the changes against Drupal 12 development builds to confirm compatibility.

                                            Contributors: Dan Lemon (dan2k3k4), project update bot (Project-Update-Bot) ---

                                            Gemini Provider

                                            Activity this period focused on automated Drupal 12 compatibility preparation. An Automated Drupal 12 compatibility fixes for gemini_provider 1.x-dev issue was opened to track removal of deprecated API uses ahead of Drupal 12. A corresponding merge request, Automated Project Update Bot fixes, was created with 62 lines of changes addressing these deprecations. The MR remains open and awaiting review. No commits were merged during this reporting period.

                                            How can I help on this project?

                                            Review the Automated Project Update Bot fixes merge request to verify the Drupal 12 compatibility changes are appropriate and don't introduce regressions. Test the changes against a Drupal 12 development environment to confirm deprecated API calls are properly replaced.

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

                                            Milvus VDB Provider

                                            Development activity this period focused on performance improvements and automated maintenance. A new merge request was opened to add support for batching on indexing operations, introducing 297 lines of changes to optimize how records are indexed into Milvus. The branch targets batch insert functionality for index operations only.

                                            Additionally, an Automated Project Update Bot fixes merge request was opened containing maintenance updates from the latest automated run.

                                            No merge requests were completed during this period, and no commits were pushed to the main branch. Both open merge requests are awaiting review and could benefit from testing and feedback.

                                            How can I help on this project?

                                            • Review the batching on indexing operations merge request to validate the API changes and performance improvements.
                                            • Test the batch insert functionality with various data volumes to ensure it handles edge cases correctly.

                                            Contributors: Artem Dmitriiev (a.dmitriiev), project update bot (Project-Update-Bot)

                                            ---

                                            AI Agents

                                            No code was merged in the past 24 hours. Activity focused on bug reports and automated compatibility work.

                                            Several Views agent issues were updated, including Views agent: style/row and filters/filter_groups must be overridden as pairs on non-default displays and UpdateViewPlugins: display option updates on non-default displays do not override defaults inheritance. Both describe problems where the Views agent fails to properly override display options on non-default displays, causing Views to fall back to default values at runtime.

                                            Work continues on Fix streaming, which addresses broken streaming in ai_chatbot. The issue describes adding streaming properties to AiAgentEntityWrapper and passing setStreamedOutput to ChatInput before provider calls.

                                            An automated Drupal 12 compatibility MR was opened, related to Automated Drupal 12 compatibility fixes for ai_agents 1.4.x-dev, containing patches to remove deprecated API uses.

                                            How can I help on this project?

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

                                            ---

                                            Tool API

                                            The tool:run masks the failure message: getOutputValues() throws on unset outputs of a failed tool issue was closed as fixed during the reporting period. This issue addressed a problem where the drush tool:run command failed to display useful error messages when a tool execution failed. Previously, the command unconditionally called getOutputValues() after reading the result status, which threw a ContextException when outputs were unset on failed tools. This masked the actual failure message that would have been helpful for debugging. The fix ensures that failure messages from tools returning ExecutableResult::failure() are properly surfaced to users rather than being hidden by context exceptions.

                                            How can I help on this project?

                                            Review the issue queue for unresolved bugs or feature requests that could benefit from testing or feedback. Consider adding test coverage for edge cases in tool execution workflows. Check documentation for the Tool API to ensure it reflects current best practices.

                                            ---

                                            Drupal Canvas

                                            A significant translation milestone was reached as the symmetric translation system now propagates component instance version updates to all translations of an entity. The Symmetric translation: component instance version updates must propagate to all translations feature ensures that when a code component's props or slots change, the automatic reconciliation applies to every language, not just the default. A related fix addressed database-backend-dependent component input key ordering in Component inputs order is database-backend-dependent: fix inputs key order assertions in tests and enforce it via PHPStan when possible, where MySQL and PostgreSQL were reordering JSON object keys on storage.

                                            On the Canvas AI front, a post-update hook bug was fixed in Canvas AI: canvas_ai_post_update_0003 strips the orchestrator agent UUID via setData(), which had been inadvertently dropping UUIDs during reimport. Hardcoded component source plugin IDs were replaced with constants via Canvas AI: Remove hardcoded component source IDs.

                                            The CLI tool received a fix for Flat named component validation in @drupal-canvas/eslint-config misses sibling entrypoints, ensuring ESLint rules now correctly identify all flat component entrypoints in a single directory. A multilingual site issue was resolved where draft asset library JavaScript URLs triggered file_get_contents() warnings in locale's JS scanner, addressed in Draft asset library JS asset registered as a file triggers file_get_contents() warning in locale's JS scan. Conflict detection features were placed behind a development flag in Put conflict detection behind a dev mode flag to unblock translation work.

                                            How can I help on this project?

                                            Review the open merge request for translating unpublished page crashes canvas (!1282). Help design notification UX for Use notifications to inform users about the detected conflicts. Investigate the regression in Deleting optional props from an SDC/code component causes validation errors in config-defined component instances.

                                            Contributors: **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Abhishek Dhariwal (adaptative) [1], Adam G-H (phenaproxima), AKHIL BABU (AkhilBabu), Bálint Kléri (balintbrews) [1], Christian López Espínola (penyaskito) [2], Feliksas Mazeikis (f.mazeikis) [1], Kunal Sachdev (kunal.sachdev), Matt Glaman (mglaman) [1], scott falconer (scottfalconer), Wim Leers (wimleers) [1]

                                            ---

                                            Context Control Center (CCC)

                                            Four issues were closed during the reporting period, primarily addressing code quality and API refinements. Fix PHPStan failures in CCC resolved 16 static analysis errors across entity field typing, diff builder return types, and interface inheritance issues. Fix phpstan error in AiContextSubcontextToggleTrait corrected an undefined method call in the toggle trait. Two API issues were also closed: No public API for building scope subscription forms addressed the lack of a supported mechanism for contrib modules to render scope-subscription UIs outside of agents, and hook_ai_context_scope_values_alter() is ignored by scope forms and labels fixed the documented alter hook being bypassed by forms and resolvers.

                                            Administrative improvements were also closed: Add Configure Link in Modules Page added standard configuration links, and Copy and layout updates on context item scope form refined help text and badge ordering in the Context Scope section.

                                            Several issues remain open as the project moves toward rc1, including Add full view layout for context item canonical and revision pages, Introduce explicit scope types and item inclusion modes, and [Feature] Add ExternalContextProviderInterface and ContextQueryInterface to support RAG/vector store integrations, which proposes formal APIs for external retrieval-augmented generation integrations.

                                            How can I help on this project?

                                            Review the open Automated Project Update Bot fixes merge request for Drupal 12 compatibility. Pick up Add #[RunTestsInSeparateProcesses] attribute to all kernel test classes, which needs the attribute added to 35 remaining kernel tests. Help test beta releases via CCC beta / pre-rc1 community testing.

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

                                            AI Dashboard

                                            Activity this period focused on the AI Ecosystem documentation and tooling. Work continued on Improve AI Ecosystem, which provides a browsable catalog of AI-related Drupal modules. The open merge request addresses CSS legibility issues with the Zensical theme and explores using the JSON manifest directly within the AI Dashboard module to allow users to browse modules from their own site. Remaining work includes implementing a cron rebuild process to fetch new modules from Drupal.org and refining the category detection logic, which currently falls back to "Utility" when it cannot classify a module by name and description.

                                            Separately, AI Recipe modal is missing the <path> argument was closed as postponed. The issue had identified that the "View Commands" buttons for AI Recipe features were generating incomplete commands that failed with a "missing path" error when executed.

                                            How can I help on this project?

                                            Review MR !24 for the AI Ecosystem improvements, particularly testing the JSON manifest integration. Consider implementing the cron rebuild process to sync modules from Drupal.org, or refine the category detection algorithm to improve classification accuracy.

                                            Contributors: Rob Loach (robloach)

                                            ---

                                            AI Search

                                            Work is underway to implement batch embeddings for improved indexing performance. A merge request has been opened to address Batch embeddings for improved indexing performance, porting functionality from the AI Core module as development of the ai_search submodule has been deprecated. The MR contains 732 lines of changes and is currently awaiting review. No commits were pushed or merged during the reporting period, indicating the work is in review phase.

                                            How can I help on this project?

                                            • Review the batch embeddings merge request to provide feedback on the API implementation and help move it toward completion.
                                            • Test the batch embedding functionality with different data volumes to validate performance improvements.

                                            Contributors: Artem Dmitriiev (a.dmitriiev), Sergiu Nagailic (Nikro)

                                            ---

                                            Field Widget Actions

                                            The interactive refinement capability was merged during this period, adding opt-in support for iterative content improvement. The feature introduces a server-side Form API modal that displays generated content and allows users to refine it with follow-up prompts before inserting the result into a field. The implementation extends FieldWidgetFormActionBase and is disabled by default, leaving existing actions unchanged.

                                            Two open merge requests saw activity: MR !26 addresses the need to let contrib modules declare their field widgets as childless, removing hard-coded dependencies on specific widget types like chosen_select and tagify. Meanwhile, MR !25 implements Ajax JS command support for checkboxes and radio buttons, which require different handling than the select-type widgets previously supported. Both MRs are open and awaiting review.

                                            How can I help on this project?

                                            Review MR !26 for the childless widget API or MR !25 for checkbox/radio support. Test the newly merged interactive refinement feature with various field widget actions and report any edge cases.

                                            Contributors: Edward Zwart (ezeedub) [1], Scott Euser (scotteuser)

                                            ---

                                            AI translate

                                            The AI translate module saw automated Drupal 12 compatibility work this period. A merge request was opened to address deprecated API usage as part of Automated Drupal 12 compatibility fixes for ai_translate 2.0.x-dev. The Automated Project Update Bot fixes MR contains 409 lines of diff targeting compatibility updates for Drupal 12. No commits were merged during this period, and the compatibility work remains in progress.

                                            How can I help on this project?

                                            Review the Automated Project Update Bot fixes merge request to validate that the automated Drupal 12 compatibility changes are correct and do not introduce regressions. Test the changes against a Drupal 12 environment to confirm functionality is preserved.

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

                                            ---

                                            AI powered Search Block

                                            Activity this period was limited to automated maintenance. A merge request titled Automated Project Update Bot fixes was opened, containing automated changes with 753 lines of diff. The MR remains open and awaiting review. No commits were pushed during this period, and no issues saw activity in their comment threads.

                                            How can I help on this project?

                                            Review the open Automated Project Update Bot fixes merge request to verify the automated changes are appropriate. Check the issue queue for unassigned issues that need attention. Test the module with recent Drupal core versions to identify compatibility issues.

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

                                            FlowDrop

                                            Activity this period focused on Drupal 12 compatibility. An automated Drupal 12 compatibility fixes issue was opened, with a corresponding merge request created to address deprecated API usage. The MR contains 4588 lines of automated refactoring changes and remains open for review. No commits were merged during this period.

                                            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 correct and do not introduce regressions. Test the patched module against Drupal 12 to ensure functionality remains intact.

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

                                            FlowDrop UI Agents

                                            Activity this period focused on Drupal 12 compatibility preparation. An Automated Drupal 12 compatibility fixes for flowdrop_ui_agents 1.0.x-dev issue was opened to track automated removal of deprecated API uses. A corresponding merge request, Automated Project Update Bot fixes, was created with 232 lines of changes addressing these compatibility issues. The MR remains open and awaiting review. No commits were merged during this period, leaving the Drupal 12 compatibility work as the primary blocking item for forward progress.

                                            How can I help on this project?

                                            • Review the Automated Project Update Bot fixes MR to verify the automated Drupal 12 compatibility changes are correct and complete.
                                            • Test the MR against Drupal 12 development environments to identify any remaining deprecated API usage or compatibility issues.
                                            Contributors: project update bot (Project-Update-Bot) ---

                                            AG-UI

                                            The AG-UI module saw automated Drupal 12 compatibility work during this period. An Automated Drupal 12 compatibility fixes for agui 1.0.x-dev issue was opened to track removal of deprecated API uses, with changes being posted periodically. A corresponding merge request, Automated Project Update Bot fixes, was opened with 41 lines of diff addressing these compatibility concerns. The MR remains open and awaiting review. No commits were merged during this period.

                                            How can I help on this project?

                                            Review the Automated Project Update Bot fixes merge request to verify the Drupal 12 compatibility changes are correct and complete. Test the patched module against Drupal 12 to ensure no regressions are introduced by the automated changes.

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

                                            AI Related Content

                                            A critical bug affecting Pinecone integration was resolved during this period. The issue Pinecone: fix getVectorFromNode() returning no results addressed two bugs in the AIRelatedContentNodeFilter class that caused related content views to return zero results. The first bug involved addCondition() silently failing because drupal_entity_id is not a Search API index field, causing the query to return random semantic matches that failed validation. The second bug used strict equality checking that would fail for chunk-suffixed IDs. Both MR !17 and MR !18 were merged to fix these issues across branches.

                                            Separately, automated Drupal 12 compatibility work began with Automated Drupal 12 compatibility fixes for ai_related_content 2.0.x-dev. MR !19 containing 239 lines of automated updates was opened and awaits review.

                                            How can I help on this project?

                                            Review MR !19 containing automated Drupal 12 compatibility fixes. Test the merged Pinecone fixes in your environment if you use that vector database. Check the issue queue for other unaddressed bugs or feature requests.

                                            Contributors: project update bot (Project-Update-Bot), Scott Euser (scotteuser) [1] ======================================================================== ## [32] factcheck:tldr:developer ======================================================================== Layer-1 corrections: 0 Judge flags: 0 ======================================================================== ## [33] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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), Ahmad Khalil (ahmad-khalil-imagex), Ann Mary Sruthy (annmarysruthy), Arnaud Willame (arwillame), Artem Dmitriiev (a.dmitriiev), Dimitar Rupov (mrupal), Eric Homanchuk (erichomanchuk), Jérôme Tchania (codeitwisely) [1], m4olivei, Ricardo Castañeda (cadence96), Sujal Kshatri (sujal_31), Wolfgang Ziegler (fago)". 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). ### [Uninstalling ai_ckeditor leaves stale toolbar items in editor.editor.* configuration](https://git.drupalcode.org/project/ai/-/work_items/3586570) State: opened | Updated: 2026-06-25 | Author: Ricardo Castañeda (cadence96) | Assigned: Ricardo Castañeda (cadence96) | Labels: aiCkeditor, category::bug Description: ## Summary When `ai_ckeditor` is uninstalled, it does not remove its toolbar button from existing CKEditor 5 editor configurations (`editor.editor.*`). If the **AI Balloon Menu** has been added to a text format toolbar, the configuration still references the removed plugin after uninstall. As a result, the text format configuration page can no longer build the toolbar correctly. ## Steps to reproduce 1. Install `ai_ckeditor`. 2. Go to **Configuration → Content authoring → Text formats and editors**. 3. Edit a CKEditor 5 text format (for example **Full HTML**). 4. Add the **AI Balloon Menu*… ### [Config action to verify if any vector database is there and it is setup](https://git.drupalcode.org/project/ai/-/work_items/3586517) State: opened | Updated: 2026-06-25 | Author: Artem Dmitriiev (a.dmitriiev) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, aiCoreModule, category::feature Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1660 [Issue #3586517: Check if any Vdb provider is setup](https://git.drupalcode.org/project/ai/-/merge_requests/1660) | State: opened | Author: Artem Dmitriiev (a.dmitriiev), 75 diff lines Description: ## Summary At the moment there is a config action `verifySetupAi` that is able to check whether the specific vector database provider is there in the system and it is setup. This is possible with `vdb_provider_is_setup` payload. In the real use case the plugin name of the vdb provider is not that relevant, as it is needed to know that any vdb provider is there and it is properly configured (setup) to create a search api server. One (any) would be enough without actually specifying which one. ## Problem There is no way at the moment to check that any vdb provider is installed and configured… ### [Batch embeddings for improved indexing performance](https://git.drupalcode.org/project/ai/-/work_items/3568648) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: Sergiu Nagailic (Nikro) | Labels: AI Initiative Sprint, AI Product Development, aiSearch, candidate 1.5.x Description: >>> [!note] Migrated issue Reported by: [paulsheldrake](https://www.drupal.org/user/1350686) Related to !1126 >>> [Tracker] Update Summary: Increase embeddings performance Short Description: Support batching for embeddings so multile chunks can be converted and inserted at a time instead of doing each chunk sequentially. Check-in Date: MM/DD/YYYY Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Indexing is slow for vector DBs Proposed resolution Add batching so more chunks can be process in one go. This MR updates the underlying classes t… ### [Improve ai_ckeditor UX when no provider modules are installed](https://git.drupalcode.org/project/ai/-/work_items/3586549) State: opened | Updated: 2026-06-25 | Author: Ricardo Castañeda (cadence96) | Assigned: unassigned | Labels: Needs UX review, category::feature, priority::minor, state::needsReview Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1701 [feat(ai_ckeditor): warn users when no AI provider is installed in the CKEditor settings tab](https://git.drupalcode.org/project/ai/-/merge_requests/1701) | State: opened | Author: Ricardo Castañeda (cadence96), 56 diff lines Description: ## Summary `ai_ckeditor` currently assumes that at least one provider module is installed. If no provider module (such as `ai_provider_openai`) is available, the CKEditor AI functionality does not work and may result in confusing behavior or errors. The module could provide clearer feedback to site builders or explicitly require provider modules. ## Problem `ai_ckeditor` can be enabled without installing any provider modules. From a site builder perspective, the module appears to be configured correctly because the CKEditor buttons are available, but attempting to use them fails. This c… ### [Add "throttle API requests" control?](https://git.drupalcode.org/project/ai/-/work_items/3561243) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiCoreModule, category::feature, priority::normal, state::accepted Description: >>> [!note] Migrated issue Reported by: [ultimike](https://www.drupal.org/user/51132) >>> [Tracker] Update Summary: Would a "throttle" control be useful? Short Description: Being able to control how quickly API calls are sent to LLMs might help users on lower tiers avoid hitting rate limits. Check-in Date: MM/DD/YYYY Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Would it make sense to add some type of "Throttle" control that allows site-builder to limit how many (or how often) LLM API calls are made? While experimenting with AI Agents, I… ### [[Discuss] Shift focus from provider plugins to operation type plugins in AI Core](https://git.drupalcode.org/project/ai/-/work_items/3559800) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::feature, discussion, priority::normal, state::closed Description: >>> [!note] Migrated issue Reported by: [a.dmitriiev](https://www.drupal.org/user/3235287) >>> [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 While investigating what approaches could be applied for #3552919: Remove ProviderProxy and use template method pattern, I had a thought, that AI Core is mainly focused on the provider plugins and providers themselves. As AI Core is a framework, I… ### [Plugin shouldn't show any fields if no text is selected](https://git.drupalcode.org/project/ai/-/work_items/3557016) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiCkeditor, category::feature, priority::normal, state::needsWork Description: >>> [!note] Migrated issue Reported by: [damienmckenna](https://www.drupal.org/user/108450) Related to !1117 >>> Problem/Motivation When opening a ckeditor plugin, if no text is selected the UI shows the "You must select some text before you can summarize it." message, but then will also show some of the other fields from the specific plugin, e.g. the Tone plugin shows the "Choose tone" selector. Proposed resolution Don't show anything in the ckeditor plugin popup (particularly for the Tone plugin) if no text has been selected. Remaining tasks Don't show anything in the ckeditor plugin po… ### [Tools UI overview page does not load](https://git.drupalcode.org/project/ai/-/work_items/3579979) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiCoreModule, category::bug, priority::major, state::accepted Description: >>> [!note] Migrated issue Reported by: [scott_euser](https://www.drupal.org/user/3267594) Related to !1443 !1329 >>> [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 If you enable AI mode + Tools module + MCP without making other changes, then /admin/config/ai/tools leads to The website encountered an unexpected error. Try again later.InvalidArgumentException: The opener ID parameter i… ### [Add a setup-guardrails agent skill to configure guardrails, guardrail sets, and global guardrails](https://git.drupalcode.org/project/ai/-/work_items/3586561) State: opened | Updated: 2026-06-25 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | Labels: aiCoreModule, category::task, priority::normal, state::needsReview Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1724 [task: #3586561 Add a setup-guardrails agent skill to configure guardrails,...](https://git.drupalcode.org/project/ai/-/merge_requests/1724) | State: opened | Author: Ann Mary Sruthy (annmarysruthy), 1682 diff lines Description: ## Description The AI module already ships a `create-guardrail-plugin` agent skill that *authors* new guardrail plugin classes. There is, however, no equivalent skill for *operating* the guardrails that already exist — i.e. configuring them on a running site. Site builders and agents currently have to drive the admin UI by hand to wire up guardrails, guardrail sets, and the global guardrail list. This task adds a `setup-guardrails` skill (sibling of `create-guardrail-plugin`, under `ai/.agents/skills/`) that configures guardrails rather than creating them, driven through the [Tool module](ht… ### [Move out AI Content Suggestions](https://git.drupalcode.org/project/ai/-/work_items/3552885) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: Needs UX review, aiContentSuggestions, beta blocker, category::feature Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !1042 !1064 >>> --- AI TRACKER METADATA --- Update Summary: Move out AI Content Suggestions Check-in Date: MM/DD/YYYY (US format) [When we should see progress/get an update] Due Date: MM/DD/YYYY (US format) [When the issue should be fully completed] Blocked by: [#XXXXXX] (New issues on new lines) Additional Collaborators: @username1, @username2 AI Tracker found here: https://www.drupalstarforge.ai/ --- END METADATA --- Problem/Motivation We are moving out AI Content Suggestions for 2.… ### [AI CKEditor: Hardcoded “summarize” message shown for all plugins when no text is selected](https://git.drupalcode.org/project/ai/-/work_items/3575346) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiCkeditor, category::bug, priority::normal, state::needsWork Description: >>> [!note] Migrated issue Reported by: [annmarysruthy](https://www.drupal.org/user/3664314) Related to !1240 >>> [Tracker] Update Summary: [One-line status update for stakeholders] Short Description: All AI CKEditor plugins display "You must select some text before you can summarize it" even when the active plugin is Translate, Tone, or SpellFix.[One-line issue summary for stakeholders] Check-in Date: 02/24/2026 Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Most AI CKEditor plugins (e.g., Translate, Tone, SpellFix, etc.) require selec… ### [[Discuss] Consider adding Agents.md](https://git.drupalcode.org/project/ai/-/work_items/3573186) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::plan, discussion, priority::normal, state::accepted Description: >>> [!note] Migrated issue Reported by: [valthebald](https://www.drupal.org/user/239562) >>> [Tracker] Update Summary: Consider adding Agents.md Short Description: Consider adding Agents.md Check-in Date: 02/12/2026 Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Inspired by discussion in the core issue #3568936: Embrace the chaos, add a couple of AGENTS.md file to core. That one was closed after heated discussion as "works as designed" (i.e. no Agents.md will be added to core for now), but reasoning (and hopefully, the discussion tone) co… ### [Drupal AI Contribution meeting 2026-02-09](https://git.drupalcode.org/project/ai/-/work_items/3570259) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::plan, meetings, priority::normal, state::fixed Description: >>> [!note] Migrated issue Reported by: [valthebald](https://www.drupal.org/user/239562) >>> Drupal AI Contribution meeting from Feb 09 at 17:00 UTC to Feb 10, 2026 17:00 UTC (Check your local time at https://www.timebie.com/std/universal.php?q=17) Previous meeting #3568422: Drupal AI Contribution meeting 2026-01-26 Where #ai-contrib channel in Drupal Slack Agenda Attendees self-intro and interests Follow-up to topics of previous meeting Suggest your topic in comments Add the issue you want to discuss as a related issue to this meeting ### [Create agents as Tools](https://git.drupalcode.org/project/ai/-/work_items/3556380) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiAgent, category::task, priority::normal, state::fixed Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) >>> Problem/Motivation This issue assumes that #1, #2 or #3 will be the decisions in #3556140: [Discuss] Allow usage of Tool API in Agents. If not, we can close this issue. We want to move our agents from being function calls to being tools. This means that we need to add some differences onto the output. By default the output, can just change to a string, but if we have #3556378: Create assisted structured output generation in place, the output should conform to whatever the JSON Schema is. This… ### [Implement Process System Integration for Automators](https://git.drupalcode.org/project/ai/-/work_items/3493291) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiAutomators, category::plan, priority::normal, state::closed Description: >>> [!note] Migrated issue Reported by: [seogow](https://www.drupal.org/user/3065779) >>> Problem/Motivation Integrate Automators with the new Process Abstraction Layer and implement process visualization UI, providing better management and monitoring of automation operations. Currently, Automators lack: Standardized process management Visual progress tracking Operation history Real-time status updates Easy way to monitor and manage running automations Ability to review and re-run previous automations Proposed resolution Process Integration Convert Automator operations to use Process A… ### [[Discuss] Allow usage of Tool API in Agents](https://git.drupalcode.org/project/ai/-/work_items/3556140) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::feature, discussion, priority, priority::normal Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) >>> Problem/Motivation Currently we have a module in Tool API that does create deriatives of the tools into function calling standards. Since we want to move Tool API to be the first and foremost way of how you do function calling in AI Core, we want to prepare for this. For the sake of the conversation its important for people to know that there are currently four ways of abstracting the function calls: ToolsInterface - in AI Core. This is pure abstraction, for different providers to have a com… ### [ai_ckeditor: Add option to show or hide the "AI Writer" status information](https://git.drupalcode.org/project/ai/-/work_items/3586569) State: opened | Updated: 2026-06-25 | Author: mxh (hauptm) | Assigned: unassigned | Labels: Description: ## Summary When enabling the ai_ckeditor submodule and enabling the plugin for the text format, a status information such as "AI Writer: Idle" is shown on every editor. This is provided in a hardcoded way by the AiNetworkStatus.js file. Some users may not want to see this status information. Therefore, it would be great being able to conveniently show or hide this information via configuration. ## Problem Making this status information optional improves general UX. ## Proposed solution *(optional)* Add a configuration option into `ai_ckeditor.settings` and expose it via UI. ## Workaroun… ### [Plan: Add cancel button to AI Chatbot](https://git.drupalcode.org/project/ai/-/work_items/3499583) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiChatbot, category::plan, priority::normal, state::closed Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) >>> Problem/Motivation The AI Chatbot currently does not follow the similar UX design as popular chatbots where you can cancel the request in the middle of it. While Deepchat seems to support it, without a common UI element for it, this will also require the possibility to revert things like agent changes, so it might need some testing or planning. Currently the revert only happens with premature destruction, errors or certain logical cases. Remaining tasks Research what is needed both on the Cha… ### [Use core Json::encode() and Json::decode everywhere possible](https://git.drupalcode.org/project/ai/-/work_items/3480683) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiCoreModule, category::task, priority::major, state::postponed Description: >>> [!note] Migrated issue Reported by: [scott_euser](https://www.drupal.org/user/3267594) Related to !1019 !434 >>> Problem/Motivation We have a bunch of instances of json_encode and json_decode. Let's just use the ones from core to avoid issues and leave the security of it to core. json_decode does very little. json_encode provides some escaping defaults. Steps to reproduce N/A Proposed resolution MR Remaining tasks MR User interface changes N/A API changes N/A Data model changes N/A ### [Move Prompt Library menu link under AI Infrastructure instead of Vector Database Configuration](https://git.drupalcode.org/project/ai/-/work_items/3586499) State: closed | Updated: 2026-06-25 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | Labels: category::task, priority::normal, state::closed Description: ## Problem/Motivation The **Prompt Library** menu link (`entity.ai_prompt.collection`) is currently nested under **Vector Database Configuration** (`ai.admin_vdb_providers`) in the AI admin menu. This is the wrong location — the Prompt Library has nothing to do with vector database providers, and placing it there makes it hard to discover. It should live directly under **AI Infrastructure** (`ai.admin_config_infrastructure`), alongside the other top-level infrastructure items (AI Platform Providers, Vector Database Configuration, Default Models, AI Files). ## Steps to reproduce 1. Navigate… ### [Prompt Library menu item missing due to incorrect parent](https://git.drupalcode.org/project/ai/-/work_items/3585596) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiCoreModule, category::bug, priority::normal, state::fixed Description: >>> [!note] Migrated issue Reported by: [drupov](https://www.drupal.org/user/433066) Related to !1523 !1522 !1521 >>> Update Summary: Fix menu link parent for Prompt Library Short Description: Prompt Library menu item missing due to incorrect parent Check-in Date: 04/19/2026 Problem/Motivation The "Prompt Library" menu item is not visible in the admin UI because it is assigned to an incorrect parent in ai.links.menu.yml. Steps to reproduce 1. Enable the AI module. 2. Go to Configuration → AI. 3. Observe that "Prompt Library" is missing. Proposed resolution Change the parent of entity… ### [[Discuss] Core support for browser providers](https://git.drupalcode.org/project/ai/-/work_items/3577202) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiCoreModule, category::plan, priority::normal, state::accepted 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 There are coming some providers built into the browsers - mainly Chrome with their AI on Chrome. Some of it experimental, but some of it already available. We have a provider that supports this in the Browser Provider using polling and session… ### [Research better practices for recipes](https://git.drupalcode.org/project/ai/-/work_items/3577175) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: aiCoreModule, category::plan, priority::normal, state::postponed 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 In AI 1.0.0 we did add a config action called SetupAiProvider for Drupal CMS launch - we have since added some other ones, but all of them are more or less workarounds to patch problems that existed in recipes at the time. What we need is: A … ### [Improvement suggestions for ai_automators docs](https://git.drupalcode.org/project/ai/-/work_items/3572751) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: Novice, aiAutomators, category::task, needs port to 2.x Description: >>> [!note] Migrated issue Reported by: [abhisekmazumdar](https://www.drupal.org/user/3557964) Related to !1202 !1201 !1187 >>> [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 While working on #3566577 AI pointed out that the ai/docs/modules/ai_automators/index.md need some updates about point 9. **Automator Worker**: to have new point about Field Widget Proposed resolution Add a 4th po… ### [Create an HTML to Markdown API and service](https://git.drupalcode.org/project/ai/-/work_items/3574246) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::feature, priority::normal, state::accepted, toBeTriaged 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 League\HTMLToMarkdown\HtmlConverter is initiated 3 times with 3 different configurations in current code, when #3574004: Generate a markdown version of (formatted) text field values gets solved that becomes the 4th one. https://git.drupalcode.org/search… ### [Support the `ai_json_schema` element inside off-canvas dialogs](https://git.drupalcode.org/project/ai/-/work_items/3586536) State: opened | Updated: 2026-06-25 | Author: Ahmad Khader (Ahmad-Khader) | Assigned: Abhisek Mazumdar (abhisekmazumdar) | Labels: AI Initiative Sprint, AI Innovation, category::task, priority::normal Description: # Title Support the `ai_json_schema` element inside off-canvas dialogs (correct rendering + value sync) ## Description The `ai_json_schema` form element (`Drupal\ai\Element\AiJsonSchema`) is documented for use "in any Drupal form", but it does not work when rendered inside Drupal's **off-canvas dialog** — which is how the `bpmn_io` modeller shows configuration forms. Upstream the element is only used on full-page forms (e.g. AI API Explorer), where it works; off-canvas has never been exercised, so this is not a regression — it is making the element robust in a context new consumers need. T… ### [Provide proper support for "unconfigured" AI provider state](https://git.drupalcode.org/project/ai/-/work_items/3572645) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, category::bug, priority::major 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… ### [Add an AI reranking processor for Search API (owned by the AI module)](https://git.drupalcode.org/project/ai/-/work_items/3586543) State: opened | Updated: 2026-06-25 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: Abhisek Mazumdar (abhisekmazumdar) | Labels: AI Initiative Sprint, AI Product Development, aiCoreModule, category::feature Description: ### Problem/Motivation Reranking improves the precision of semantic search by re-ordering an initial result set with a dedicated rerank model (or a general-purpose LLM). AI Core already added a `rerank` operation type in [#3488114](https://www.drupal.org/project/ai/issues/3488114) (now closed), but nothing in the ecosystem consumes it yet. [#3557901 — Add Reranking Support to AI Search](https://git.drupalcode.org/project/ai_search/-/work_items/3557901) proposed adding reranking directly to AI Search. On reflection it makes more sense for the **AI module itself to own this**: reranking is a g… ### [Clean up ai_observability settings form](https://git.drupalcode.org/project/ai/-/work_items/3574499) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, aiObservability, category::task Description: >>> [!note] Migrated issue Reported by: [svendecabooter](https://www.drupal.org/user/35369) Related to !1221 >>> [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 It seems the \Drupal\ai_observability\Form\SettingsForm can use some cleanup / removal of unnecessary code: Uses both #default_value and #config_target. The former is not needed if the latter is used. Simplify constants ... ### [[Research] Mechanism to force deprecated bundled submodules onto their contrib version (start with ai_validations)](https://git.drupalcode.org/project/ai/-/work_items/3586538) State: opened | Updated: 2026-06-25 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, aiValidations, category::plan Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1725 [feat: #3586538 Add hook_requirements and hook_update_10001 for ai_validations deprecation](https://git.drupalcode.org/project/ai/-/merge_requests/1725) | State: opened | Author: Abhisek Mazumdar (abhisekmazumdar), 81 diff lines Description: ## Summary Research and define a **repeatable mechanism** for forcing a site off a **deprecated bundled submodule** (shipped inside AI Core) and onto the **standalone contrib module** of the same machine name. Use **`ai_validations`** as the first concrete case, then generalise the outcome into a documented "deprecate-and-switch" playbook for the other submodules being moved to contrib. This is the missing *"how"* behind the deprecation work already started in #3552888 (Move out AI Validations), #3554535 / [CR 3570275](https://www.drupal.org/node/3570275) (AI Translate) and #3586497 (AI Sear… ### [AI CKEditor regression in 1.5.x?](https://git.drupalcode.org/project/ai/-/work_items/3586567) State: closed | Updated: 2026-06-25 | Author: Michael Anello (ultimike) | Assigned: unassigned | Labels: toBeTriaged, why::needsInfo Description: Is there any chance that AI CKEditor in 1.4.x is ahead of 1.5.x? I ask because I've been trying to test AI CCC -dev with AI 1.5.x and what I'm seeing doesn't look quite right. See https://git.drupalcode.org/project/ai_context/-/work_items/3581955#note_1270334 -mike ### [Unable to override the 'Calling agents' / 'Contacting agents' text](https://git.drupalcode.org/project/ai/-/work_items/3586389) State: opened | Updated: 2026-06-25 | Author: m4olivei | Assigned: unassigned | Labels: category::feature, priority::minor, state::rtbc, v1.4.x-dev Description: ### Problem/Motivation The deepchat conversational UI shows the the text 'Calling agents..' or 'Contacting agents..' when the system is off delgating to agents. Depending on the client / use case, this language can be confusing and/or unfamiliar, ultimately not helpful to the end user. This task is to allow this text to be overriden in configuration. I'd also suggest that the text be made consistent. By my read 'Contacting agents..' is more appropriate, as its more general than 'Calling', which we probably mean in the developer sense of 'Calling an API', but may users would read as a liter… ### [Glossary for the Drupal AI initiative](https://git.drupalcode.org/project/ai/-/work_items/3577844) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: Needs issue summary update, category::plan, documentation, priority::normal Description: >>> [!note] Migrated issue Reported by: [scott falconer](https://www.drupal.org/user/52557) >>> This is a first-pass glossary intended to align Drupal AI with common AI language, current framework language, and Drupal's existing terminology. The goal is to freeze the core terms now, avoid overloaded words, and refine edge cases later. Where a plain-language term and a provider-specific term both exist, prefer the plain-language term in public-facing docs and UI. Use the more precise technical term when architecture, runtime behavior, or interoperability matters. AX and shared-interface ter… ### [Add info about initiative and release differences to project page](https://git.drupalcode.org/project/ai/-/work_items/3586568) State: opened | Updated: 2026-06-25 | Author: Heather Wozniak (heatherwoz) | Assigned: unassigned | Labels: category::task, priority::minor, state::accepted Description: ## Summary The project page could do a better job explaining the difference between the minor releases (1.2, 1.3, 1.4) and leading people to information about the overall initiative. ## Problem There is a lot of information in the project description, but nothing that helps developers understand which minor version to choose or what to expect when upgrading minor or major versions. This is standard info on many Drupal project pages and would be helpful to add here. Some of this info exists in blog posts and on the initiative page, but there is no path to those pages from the project descri… ### [Generalize behaviour of FWA with Automators (AI Core v2)](https://git.drupalcode.org/project/ai/-/work_items/3586515) State: opened | Updated: 2026-06-25 | Author: Artem Dmitriiev (a.dmitriiev) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, aiAutomators, category::task Description: The refactor was done for version 1.x (1.4.x and 1.5.x). It was not possible to easily cherry-pick the changes to 2.x and 2.0.x. This issue is to port changes from https://git.drupalcode.org/project/ai/-/merge_requests/1536 to 2.x and 2.0.x branches. ### [Issue when creating content and click on AI Assistant on Ckeditor](https://git.drupalcode.org/project/ai/-/work_items/3586545) State: opened | Updated: 2026-06-25 | Author: Jean-Marc PAMBRUN (dpalicepeio-at-drupbuilder.org) | Assigned: unassigned | Labels: Is Contextualized, category::bug, priority::major, state::rtbc Description: Drupal 11.4.0-rc1 with [AI (Artificial Intelligence)](https://www.drupal.org/project/ai) 1.4.2 When creating content using ckeditor 5, when click on ai assitant a red message appears "Oops, something went wrong. Check your browser's developer console for more details." And the db_logs shows "Error: Call to a member function get() on null in Drupal\\ai_ckeditor\\AiCKEditorPluginBase-\>buildCkEditorModalForm() (line 214 of /home/drupbut/www/modules/contrib/ai/modules/ai_ckeditor/src/AiCKEditorPluginBase.php" Contextual information for getting started ## Context The AI CKEditor module (`ai_… ### [Automated Drupal 12 compatibility fixes for ai 2.0.x-dev](https://git.drupalcode.org/project/ai/-/work_items/3586525) State: opened | Updated: 2026-06-25 | 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… ### [Fiber branch in OpenAiBasedProviderClientBase::chat() drops token usage from the reconstructed ChatOutput](https://git.drupalcode.org/project/ai/-/work_items/3586522) State: closed | Updated: 2026-06-25 | Author: Jérôme Tchania (codeitwisely) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, aiCoreModule, category::bug Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1670 [Issue #3586522: Keep token usage in the chat() Fiber branch](https://git.drupalcode.org/project/ai/-/merge_requests/1670) | State: merged 2026-06-25 | Author: Jérôme Tchania (codeitwisely), 261 diff lines Description: ## Problem/Motivation `OpenAiBasedProviderClientBase::chat()` loses all token usage data when it runs inside a PHP Fiber. The Fiber branch (line ~341 on `1.x`) consumes the stream, then reconstructs the final output: ```php // Create the final message from accumulated data. $message = $stream->reconstructChatOutput()->getNormalized(); $chat_output = new ChatOutput($message, $response, []); ``` `reconstructChatOutput()` returns a `ChatOutput` that already carries the correct token usage — but only `getNormalized()` is kept, and the new `ChatOutput` is built with an empty `TokenUsageDto`. Th… ### [Allow vector database providers to opt in as the default VDB when none is set](https://git.drupalcode.org/project/ai/-/work_items/3586500) State: closed | Updated: 2026-06-25 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, category::feature, priority::normal Description: ## Problem/Motivation An AI provider can already opt in to become the **default provider** for a given operation type when none is set yet (the provider declares this and the AI module picks it up automatically if no default exists). The AI module also supports setting a **default vector database (VDB) provider**, but there is currently **no equivalent opt-in mechanism** for VDB providers. A VDB provider cannot declare "make me the default vector database if none is set", so the default always has to be configured manually. ## Proposed resolution Add the same opt-in capability for vector d… ### [Use ai_provider_configuration form element in RestrictToTopic configuration form](https://git.drupalcode.org/project/ai/-/work_items/3586472) State: closed | Updated: 2026-06-25 | Author: Artem Dmitriiev (a.dmitriiev) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, category::feature, priority::normal Description: RestrictToTopic still uses old AiProviderFormHelper service for selection of provider and model. This should be changed to use the form element instead. --- MERGE REQUESTS (24h) --- ### [Issue #3568648: Batch embeddings as a first-class operation type (follow-up to !1704)](https://git.drupalcode.org/project/ai/-/merge_requests/1726) State: opened | Author: Ahmad Khalil (ahmad-khalil-imagex) | Branch: 3568648-batch-embeddings-long-running-approach | 607 diff lines Description: # !1726 — ai (#3568648) Pushed a follow-up that makes batch embeddings a first-class, non-breaking operation type and hardens the VDB path. ## Summary * New `BatchEmbeddingsInterface` operation type with ID `batch_embeddings`. * Opt-in. * Extends `OperationTypeInterface`. * Makes `batchEmbeddings()` a trigger method so it routes through `ProviderProxy`. * This ensures the operation gets: * Events * Config normalization * Tags * `ai_logging` * `EmbeddingsInterface` is untouched, so existing providers are unaffected. * `OpenAiBasedProviderClientBase` now implements `Ba… ### [Remove ai_content_suggestions module for ai core](https://git.drupalcode.org/project/ai/-/merge_requests/1042) State: merged 2026-06-25 | Author: Eric Homanchuk (erichomanchuk) | Branch: 3552885-move-out-ai | 3777 diff lines Description: The module will now be a contrib module and has a project at https://www.drupal.org/project/ai_content_suggestions Closes #3552885 ### [Issue #3585596: Move Prompt Library under AI Infrastrcture](https://git.drupalcode.org/project/ai/-/merge_requests/1522) State: merged 2026-06-25 | Author: Dimitar Rupov (mrupal) | Branch: 3585596-prompt-library-parent-1.4.x | 13 diff lines Description: Closes #3585596 ### [Issue #3585596: Move Prompt Library under AI Infrastrcture](https://git.drupalcode.org/project/ai/-/merge_requests/1521) State: merged 2026-06-25 | Author: Dimitar Rupov (mrupal) | Branch: 3585596-prompt-library-parent-2.0.x | 13 diff lines Description: Closes #3585596 ### [Issue #3585596: Move Prompt Library under AI Infrastrcture](https://git.drupalcode.org/project/ai/-/merge_requests/1523) State: closed | Author: Dimitar Rupov (mrupal) | Branch: 3585596-prompt-library-parent-1.3.x | 13 diff lines Description: Closes #3585596 ### [docs: #3572751 Add docs for the Field widget Actions automator worker](https://git.drupalcode.org/project/ai/-/merge_requests/1293) State: merged 2026-06-25 | Author: Wolfgang Ziegler (fago) | Branch: cherry-pick-c72530aa | 22 diff lines Description: By: abhisekmazumdar By: sujal kshatri By: scontzen (cherry picked from commit c72530aa54564650b47754b622a266792694f4f4) ce3d22c7 docs: #3572751 Improvement suggestions for ai_automators docs Co-authored-by: Abhisek Mazumdar ### [Adding a new point about Automator Worker](https://git.drupalcode.org/project/ai/-/merge_requests/1187) State: closed | Author: Sujal Kshatri (sujal_31) | Branch: 2.0.x | 44218 diff lines Description: Documentation for **Automator Worker** in `ai/docs/modules/ai_automators/index.md` , Added a new point describing the **Field Widget worker type** ### [Adding a new point about Automator Worker](https://git.drupalcode.org/project/ai/-/merge_requests/1201) State: closed | Author: Sujal Kshatri (sujal_31) | Branch: 1.3.x | 19 diff lines Description: Documentation for **Automator Worker** in `ai/docs/modules/ai_automators/index.md` , Added a new point describing the **Field Widget worker type** ### [Issue #3586389: Add agent delegation message setting](https://git.drupalcode.org/project/ai/-/merge_requests/1539) State: opened | Author: m4olivei | Branch: 3586389-unable-to-override-t | 69 diff lines Description: Closes #3586389 ### [Draft: Fix lb asymetric translation](https://git.drupalcode.org/project/ai/-/merge_requests/1687) State: opened | Author: Arnaud Willame (arwillame) | Branch: 3586554-lb-asymetric-translation-not-translating-content-anymore | 759 diff lines Description: ## Description ## Testing instructions 1. 2. ## Checklist - [ ] I have linked the related issue in the MR title or description - [ ] I have performed a self-review of my own code - [ ] I have added or updated tests, or explained in the description why this change is not covered by tests - [ ] I have updated documentation for any new or changed functionality - [ ] I have written testing instructions and verified them locally - [ ] I have noted any required post-merge steps (config imports, cache rebuilds, manual changes) - [ ] This MR contains no breaking API or hook changes, or the… ### [Issue #3586522: Keep token usage in the chat() Fiber branch](https://git.drupalcode.org/project/ai/-/merge_requests/1723) State: merged 2026-06-25 | Author: Artem Dmitriiev (a.dmitriiev) | Branch: cherry-pick-4be58dd8-5 | 255 diff lines Description: ## Description ## Testing instructions 1. 2. ## Checklist - [ ] I have linked the related issue in the MR title or description - [ ] I have performed a self-review of my own code - [ ] I have added or updated tests, or explained in the description why this change is not covered by tests - [ ] I have updated documentation for any new or changed functionality - [ ] I have written testing instructions and verified them locally - [ ] I have noted any required post-merge steps (config imports, cache rebuilds, manual changes) - [ ] This MR contains no breaking API or hook changes, or the… ### [Issue #3586522: Keep token usage in the chat() Fiber branch](https://git.drupalcode.org/project/ai/-/merge_requests/1722) State: merged 2026-06-25 | Author: Artem Dmitriiev (a.dmitriiev) | Branch: cherry-pick-4be58dd8-4 | 255 diff lines Description: ## Description ## Testing instructions 1. 2. ## Checklist - [ ] I have linked the related issue in the MR title or description - [ ] I have performed a self-review of my own code - [ ] I have added or updated tests, or explained in the description why this change is not covered by tests - [ ] I have updated documentation for any new or changed functionality - [ ] I have written testing instructions and verified them locally - [ ] I have noted any required post-merge steps (config imports, cache rebuilds, manual changes) - [ ] This MR contains no breaking API or hook changes, or the… ### [Issue #3586522: Keep token usage in the chat() Fiber branch](https://git.drupalcode.org/project/ai/-/merge_requests/1719) State: merged 2026-06-25 | Author: Artem Dmitriiev (a.dmitriiev) | Branch: cherry-pick-4be58dd8 | 261 diff lines Description: ## Description ## Testing instructions 1. 2. ## Checklist - [ ] I have linked the related issue in the MR title or description - [ ] I have performed a self-review of my own code - [ ] I have added or updated tests, or explained in the description why this change is not covered by tests - [ ] I have updated documentation for any new or changed functionality - [ ] I have written testing instructions and verified them locally - [ ] I have noted any required post-merge steps (config imports, cache rebuilds, manual changes) - [ ] This MR contains no breaking API or hook changes, or the… ### [Issue #3586522: Keep token usage in the chat() Fiber branch](https://git.drupalcode.org/project/ai/-/merge_requests/1721) State: merged 2026-06-25 | Author: Artem Dmitriiev (a.dmitriiev) | Branch: cherry-pick-4be58dd8-3 | 261 diff lines Description: ## Description ## Testing instructions 1. 2. ## Checklist - [ ] I have linked the related issue in the MR title or description - [ ] I have performed a self-review of my own code - [ ] I have added or updated tests, or explained in the description why this change is not covered by tests - [ ] I have updated documentation for any new or changed functionality - [ ] I have written testing instructions and verified them locally - [ ] I have noted any required post-merge steps (config imports, cache rebuilds, manual changes) - [ ] This MR contains no breaking API or hook changes, or the… ### [Issue #3586522: Keep token usage in the chat() Fiber branch](https://git.drupalcode.org/project/ai/-/merge_requests/1720) State: merged 2026-06-25 | Author: Artem Dmitriiev (a.dmitriiev) | Branch: cherry-pick-4be58dd8-2 | 261 diff lines Description: ## Description ## Testing instructions 1. 2. ## Checklist - [ ] I have linked the related issue in the MR title or description - [ ] I have performed a self-review of my own code - [ ] I have added or updated tests, or explained in the description why this change is not covered by tests - [ ] I have updated documentation for any new or changed functionality - [ ] I have written testing instructions and verified them locally - [ ] I have noted any required post-merge steps (config imports, cache rebuilds, manual changes) - [ ] This MR contains no breaking API or hook changes, or the… ### [Cherry-pick changes from #3586500](https://git.drupalcode.org/project/ai/-/merge_requests/1718) State: merged 2026-06-25 | Author: Artem Dmitriiev (a.dmitriiev) | Branch: cherry-pick-56a8ae4c | 209 diff lines Description: ## Description ## Testing instructions 1. 2. ## Checklist - [ ] I have linked the related issue in the MR title or description - [ ] I have performed a self-review of my own code - [ ] I have added or updated tests, or explained in the description why this change is not covered by tests - [ ] I have updated documentation for any new or changed functionality - [ ] I have written testing instructions and verified them locally - [ ] I have noted any required post-merge steps (config imports, cache rebuilds, manual changes) - [ ] This MR contains no breaking API or hook changes, or the… --- COMMITS (24h) --- - [5d7d6a5b](https://git.drupalcode.org/project/ai/-/commit/5d7d6a5ba324b4380d5f7963b611f20062e2f2c6) Issue #3585596: Move Prompt Library under AI Infrastrcture — Dimitar Rupov (2026-04-19T11:14:26.000+03:00) - [4be58dd8](https://git.drupalcode.org/project/ai/-/commit/4be58dd8e4a0b2c05bff7275dbb4c281b53bb6b6) Issue #3586522: Keep token usage in the chat() Fiber branch — Jérôme Tchania (2026-06-25T08:34:34.000+00:00) ======================================================================== ## [34] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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 Outside-in / Innovation Roadmap (draft)](https://git.drupalcode.org/project/ai_initiative/-/work_items/3576908) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: scott falconer (scottfalconer) | Labels: category::plan, priority::normal, roadmap, state::accepted Description: >>> [!note] Migrated issue Reported by: [scott falconer](https://www.drupal.org/user/52557) >>> Problem/Motivation: Optimize Drupal for agents by optimizing the platform itself: a reliable, governable action surface. Agents should be allowed to attempt real work, while the system enforces deterministic rules: schema validation, permissions, workflow state, auditability, delivery gates, and blast-radius limits. Outside-in is a first-class requirement: assume users will bring external agents/orchestrators, in addition to built-in agents. Priority 0: Identity + Reliability + Guardrails Tr… ### [Add standardized GitLab issue templates for initiative work](https://git.drupalcode.org/project/ai_initiative/-/work_items/3586461) State: closed | Updated: 2026-06-25 | Author: Christoph Breidert (breidert) | Assigned: unassigned | Labels: AI Initiative Sprint, category::task, priority::normal, state::rtbc Description: ## Summary Introduce a standardized set of GitLab issue templates to organize all work within the Drupal AI Initiative. Templates should cover the main types of work the initiative produces — coordination, research, decisions, meetings, and community activities — and follow a consistent structure so contributors across all tracks can create well-formed issues quickly. ## Work Track Cross-track ## Context / Background The Drupal AI Initiative coordinates work across four tracks (AI Core, AI Products, AI Marketing, AI UX) and a growing contributor base. Without a shared template structure, … --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- (none) ======================================================================== ## [35] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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-06-25 | 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 | 210 diff lines Description: Relates to #3585018. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [36] summariseModule:ai_provider_openai:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: OpenAI Provider (machine name: ai_provider_openai) Reporting period: last 24h (2026-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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: Paul Sheldrake (paulsheldrake), 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

                                                  OpenAI 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). (none) --- MERGE REQUESTS (24h) --- ### [add support for batch embeddings](https://git.drupalcode.org/project/ai_provider_openai/-/merge_requests/59) State: opened | Author: Paul Sheldrake (paulsheldrake) | Branch: 3568659-support-batched-embeddings | 284 diff lines Description: Closes #3568659 ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/ai_provider_openai/-/merge_requests/77) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 13 diff lines Description: Relates to #3606117. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [37] summariseModule:ai_provider_amazeeio:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: amazee.ai Private AI Provider (machine name: ai_provider_amazeeio) Reporting period: last 24h (2026-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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: Dan Lemon (dan2k3k4), 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

                                                    amazee.ai Private AI 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). ### [pgsql ext dependency missing in composer.json](https://git.drupalcode.org/project/ai_provider_amazeeio/-/work_items/3586235) State: closed | Updated: 2026-06-25 | Author: Dan Lemon (dan2k3k4) | Assigned: unassigned | Labels: Description: Error: Call to undefined function Drupal\ai_provider_amazeeio\Vdb\Postgres\pg_connect() in Drupal\ai_provider_amazeeio\Vdb\Postgres\PostgresPgvectorClient->getConnection() (regel 80 van /app/web/modules/contrib/ai_provider_amazeeio/src/Vdb/Postgres/PostgresPgvectorClient.php). ### [Automated Drupal 12 compatibility fixes for ai_provider_amazeeio 2.0.x-dev](https://git.drupalcode.org/project/ai_provider_amazeeio/-/work_items/3586234) State: opened | Updated: 2026-06-25 | 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… --- MERGE REQUESTS (24h) --- ### [fix(#3586231): check that key identifiers are non-empty strings before loading keys](https://git.drupalcode.org/project/ai_provider_amazeeio/-/merge_requests/74) State: merged 2026-06-25 | Author: Dan Lemon (dan2k3k4) | Branch: 3586231-issue-branch | 30 diff lines Description: Closes #3586231 ### [chore: require ext-pgsql](https://git.drupalcode.org/project/ai_provider_amazeeio/-/merge_requests/76) State: merged 2026-06-25 | Author: Dan Lemon (dan2k3k4) | Branch: add-ext-psql | 75 diff lines ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/ai_provider_amazeeio/-/merge_requests/77) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 388 diff lines Description: Relates to #3586234. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [38] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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

                                                      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). ### [Automated Drupal 12 compatibility fixes for gemini_provider 1.x-dev](https://git.drupalcode.org/project/gemini_provider/-/work_items/3589187) State: opened | Updated: 2026-06-25 | 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… --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/gemini_provider/-/merge_requests/41) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 62 diff lines Description: Relates to #3589187. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [39] summariseModule:ai_vdb_provider_milvus:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Milvus VDB Provider (machine name: ai_vdb_provider_milvus) Reporting period: last 24h (2026-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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: Artem Dmitriiev (a.dmitriiev), 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

                                                        Milvus VDB 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). (none) --- MERGE REQUESTS (24h) --- ### [add support for batching on indexing operations](https://git.drupalcode.org/project/ai_vdb_provider_milvus/-/merge_requests/44) State: opened | Author: Artem Dmitriiev (a.dmitriiev) | Branch: 3568651-batch-inserts-index-only | 297 diff lines Description: Closes #3568651 ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/ai_vdb_provider_milvus/-/merge_requests/50) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 13 diff lines Description: Relates to #3606124. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [40] stripNameAttribution:ai_vdb_provider_milvus ======================================================================== 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: Artem Dmitriiev (a.dmitriiev), 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 ---

                                                          Milvus VDB Provider

                                                          During this reporting period, two new development efforts were initiated to improve the module's capabilities and quality.

                                                          Work began on add support for batching on indexing operations, which will enable the system to process multiple indexing tasks together rather than one at a time. This should improve performance when handling large volumes of content, reducing the time needed to make information searchable.

                                                          Additionally, Automated Project Update Bot fixes were prepared to maintain code quality standards and keep the module aligned with Drupal project requirements.

                                                          No issues were updated and no code was merged during this period, indicating that development work is progressing through the review stage. Both efforts are in progress and represent incremental improvements to system performance and maintainability.

                                                          How can I help on this project?

                                                          • Ensure dedicated review resources are available to assess and merge pending development work, preventing bottlenecks in the delivery pipeline.
                                                          • Confirm that performance improvement initiatives like batching align with broader organizational priorities for scaling content operations.

                                                          Contributors: Artem Dmitriiev (a.dmitriiev), project update bot (Project-Update-Bot)

                                                          ======================================================================== ## [41] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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). ### [Views agent: style/row and filters/filter_groups must be overridden as pairs on non-default displays](https://git.drupalcode.org/project/ai_agents/-/work_items/3582782) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::bug, code, priority::normal, state::needsWork Description: >>> [!note] Migrated issue Reported by: [abhisekmazumdar](https://www.drupal.org/user/3557964) >>> Problem/Motivation Views internally treats certain display options as coupled pairs: style and row are always set together — the row plugin must be compatible with the style plugin. filters and filter_groups are always set together — filter_groups holds the AND/OR operator config that applies to the filters. When the Views agent updates only one option of a pair on a non-default display, the result is a broken or inconsistent display. For example: A user asks "Change the format… ### [UpdateViewPlugins: display option updates on non-default displays do not override defaults inheritance](https://git.drupalcode.org/project/ai_agents/-/work_items/3582781) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::bug, code, priority::normal, state::accepted Description: >>> [!note] Migrated issue Reported by: [abhisekmazumdar](https://www.drupal.org/user/3557964) >>> Problem/Motivation When the Views agent calls UpdateViewPlugins to update a display option (e.g. title, path, style) on a non-default display such as page_1, the value is saved to the config array but the defaults flag for that option is never cleared on the display. At runtime, Views checks defaults[title] === true and still serves the default display's value instead of the one that was just written. This means a user prompt like "Update the title of the page display to Article Listing" appe… ### [Fix streaming](https://git.drupalcode.org/project/ai_agents/-/work_items/3577520) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::bug, code, priority::normal, state::accepted Description: >>> [!note] Migrated issue Reported by: [d0t15t](https://www.drupal.org/user/132353) Related to !243 >>> Problem/Motivation Streaming in the ai_chatbot does not work. Steps to reproduce Create an AI assistant and attach an agent to it. Enable streaming on the assistant's chatbot block. Submit a message — the response is not streamed; it waits for the full completion before rendering. Proposed resolution Add $streaming and $streamingIterator properties to AiAgentEntityWrapper. Pass setStreamedOutput($this->streaming) to the ChatInput before the provider call in determineSolvabi… ### [Add limits on how often a tool can run](https://git.drupalcode.org/project/ai_agents/-/work_items/3547995) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative Sprint, AI Innovation, category::feature, code 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… ### [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-06-25 | 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… ### [Exceptions in tool execute break the UI for the user](https://git.drupalcode.org/project/ai_agents/-/work_items/3537123) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative Sprint, AI Innovation, category::bug, code Description: >>> [!note] Migrated issue Reported by: [jurgenhaas](https://www.drupal.org/user/168924) Related to !163 >>> Problem/Motivation When using the AI Agent Explorer and run an agent that has an issue with a tool definition, e.g. if the context definition isn't accurate, Drupal throws an exception and the UI in the explorer is broken with an error message in the browser console. The user doesn't get any feedback, that the process failed. The same is likely to happen in other contexts, too, e.g. in the chat. Proposed resolution Let's try and catch such exceptions and provide the exception messa… --- 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 | 1325 diff lines Description: Relates to #3586038. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [42] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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

                                                            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). ### [tool:run masks the failure message: getOutputValues() throws on unset outputs of a failed tool](https://git.drupalcode.org/project/tool/-/work_items/3582942) State: closed | Updated: 2026-06-25 | Author: Matt Glaman (mglaman) | Assigned: unassigned | Labels: state::fixed Description: ## Problem `drush tool:run` shows nothing useful when a tool fails. Instead of the failure message, it throws a `ContextException` and exits. The command reads the result, then unconditionally reads the outputs: ```php $success = $tool->getResultStatus(); $message = (string) $tool->getResultMessage(); $outputs = $tool->getOutputValues(); ``` A tool that returns `ExecutableResult::failure()` never sets its declared output contexts. `getOutputValues()` loops over every declared output and calls `getOutputValue()`, which throws on an unset context: ```php throw new ContextException(sprintf("… --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- (none) ======================================================================== ## [43] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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), Abhishek Dhariwal (adaptative) [1], Adam G-H (phenaproxima), AKHIL BABU (AkhilBabu), Bálint Kléri (balintbrews) [1], Christian López Espínola (penyaskito) [2], Feliksas Mazeikis (f.mazeikis) [1], Kunal Sachdev (kunal.sachdev), Matt Glaman (mglaman) [1], scott falconer (scottfalconer), Wim Leers (wimleers) [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

                                                              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-06-26 | Author: **** (project_19391_bot_cb443e60680723bba08a5351bf595251) | Assigned: unassigned | Labels: 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: 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. - ⚠️ WARN: Failed to set branch status - ⚠️ WARN: No github.com token has been configured. Skipping release notes retrieval ## Deprecations / Replacements > ⚠️ **Warning** > The foll… ### [Canvas icon / logo for Project Browser and project page](https://git.drupalcode.org/project/canvas/-/work_items/3545468) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: Novice, category::task, miscellaneous, priority::normal Description: >>> [!note] Migrated issue Reported by: [darren oh](https://www.drupal.org/user/30772) >>> Overview We need a visual representation of the project. The logo candidates for Experience Builder are not relevant now that the project has been renamed. Proposed resolution Candidate 1 Candidate 2 Candidate 3 > Related issue: [Issue #3507188](https://www.drupal.org/node/3507188) ### [Component inputs order is database-backend-dependent: fix inputs key order assertions in tests and enforce it via PHPStan when possible](https://git.drupalcode.org/project/canvas/-/work_items/3591726) State: closed | Updated: 2026-06-26 | Author: Christian López Espínola (penyaskito) | Assigned: Christian López Espínola (penyaskito), Wim Leers (wimleers) | Labels: AI-accelerated, backend, category::task, dataModel Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1291 [Issue #3591726: Compare component inputs order-independently in tests and enforce it via PHPStan](https://git.drupalcode.org/project/canvas/-/merge_requests/1291) | State: merged 2026-06-26 | Author: Christian López Espínola (penyaskito), 361 diff lines Description: ### Overview The kernel test `ComponentTreeFieldSymmetricalTranslationSynchronizerTest` fails on MySQL and PostgreSQL but passes on MariaDB and SQLite. The failure is an "arrays are identical" mismatch on a component instance's `inputs` where the values are correct but the key order differs (e.g. `href`/`text` swapped). The cause is database-backend-dependent: component `inputs` are stored in a native JSON column, and JSON object key order is not preserved uniformly across backends. MySQL (`json`) and PostgreSQL (`jsonb`) reorder object keys on storage, while MariaDB (where `json` is a `LONG… ### [Symmetric translation: component instance version updates must propagate to all translations](https://git.drupalcode.org/project/canvas/-/work_items/3591596) State: closed | Updated: 2026-06-26 | Author: Christian López Espínola (penyaskito) | Assigned: Christian López Espínola (penyaskito), Ted Bowman (tedbow), Wim Leers (wimleers) | Labels: AI-accelerated, category::feature, dataModel, priority::critical Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1271 [feat: #3591596 Apply component instance updater to all component trees: content/config non-default translations; introduce `StagedLanguageConfigOverride` to treat both similarly](https://git.drupalcode.org/project/canvas/-/merge_requests/1271) | State: merged 2026-06-25 | Author: Wim Leers (wimleers), 5559 diff lines Description: ### Overview When a code component's props or slots change, Canvas's `ComponentInstanceUpdater` automatically reconciles existing component instances to the new version — removing orphaned props, injecting defaults for new required props, and removing children in deleted slots. This reconciliation currently only affects the language that happens to be loaded when the entity is opened for editing. In symmetric translation mode, `component_version` lives in the shared `tree` column group, so updating the version for one language inadvertently marks all translations as up-to-date. When a transl… ### [Deduplicate the shared JavaScript component test fixture and prop-mutation helpers across the translation-propagation and component-instance-updater kernel tests](https://git.drupalcode.org/project/canvas/-/work_items/3591723) State: opened | Updated: 2026-06-25 | Author: Christian López Espínola (penyaskito) | Assigned: unassigned | Labels: category::task, componentSources, data integrity, priority::major Description: ### Overview Two kernel test classes independently set up the same thing: a `JavaScriptComponent` fixture and a family of "prop-mutation" helpers that simulate a component evolving (adding/removing required and optional props, changing a prop's type, etc.). - `TranslationPropagationTestBase` (added in #3591596) — its fixture plus `addOptionalProp()`, `addRequiredProp()`, `removeOptionalProp()`, `changePropType()`, `removeAndAddProp()`, `removeBothProps()`. - `JsonSchemaPropsComponentInstanceUpdaterTest` — its own near-identical fixture plus `addOptionalProp()`, `addOptionalArrayProp()`, `rem… ### [Put conflict detection behind a dev mode flag](https://git.drupalcode.org/project/canvas/-/work_items/3591725) State: closed | Updated: 2026-06-25 | Author: Feliksas Mazeikis (f.mazeikis) | Assigned: Feliksas Mazeikis (f.mazeikis) | Labels: 1.x-dev, Conflict resolution, backend, priority::critical Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1290 [Put conflict detection behind feature flag](https://git.drupalcode.org/project/canvas/-/merge_requests/1290) | State: merged 2026-06-25 | Author: Feliksas Mazeikis (f.mazeikis), 251 diff lines Description: Conflict detection is getting in the way of translations work. Considering this already has been a question on !1193 , let's put conflict detection BE changes behind dev flag. By @wimleers on slack: > :grimacing: :bug: Speaking of which, I just:Created a Page that uses a code component\ > Triggered a new version of that code component\ > Visited that Page via Canvas → auto-save created (only for the default translation aka en)\ > TRANSLATE that Page\ > Again visit that Page via Canvas → :warning: CONFLICT DETECTED! ### [Avoid registering draft asset-library JS URLs to prevent locale's js_alter from treating them as local files](https://git.drupalcode.org/project/canvas/-/work_items/3591719) State: closed | Updated: 2026-06-25 | Author: Kunal Sachdev (kunal.sachdev) | Assigned: unassigned | Labels: category::task, priority::normal, state::closed, v1.x-dev Description: **Overview** This was found while working in https://git.drupalcode.org/project/canvas/-/work_items/3591654, see thread https://git.drupalcode.org/project/canvas/-/merge_requests/1234#note_1258003 In `LibraryHooks::libraryInfoBuild()`, the draft variant of each AssetLibrary entity registers its JS URL as a standard library asset: Because the path starts with / (but not //), Drupal's `LibraryDiscoveryParser` strips the leading slash and stores it as a root-relative type: file asset (`canvas/api/v0/auto-saves/js/asset_library/global`). When the locale module is installed, its `hook_js_alter()` … ### [Draft asset library JS asset registered as a file triggers file_get_contents() warning in locale's JS scan](https://git.drupalcode.org/project/canvas/-/work_items/3591729) State: closed | Updated: 2026-06-25 | Author: Christian López Espínola (penyaskito) | Assigned: Christian López Espínola (penyaskito) | Labels: JavaScript, autoSave, category::bug, internalHttpApi Description: ### Overview On a multilingual site, page renders that include a Canvas asset library draft emit a PHP warning: ``` file_get_contents(canvas/api/v0/auto-saves/js/asset_library/global): Failed to open stream: No such file or directory in _locale_parse_js_file() (core/modules/locale/locale.module:771) ``` The interface-translation system (`locale`) scans every JavaScript asset of type `file` on a page to extract `Drupal.t()` / `Drupal.formatPlural()` strings, reading each one with `file_get_contents()`. Canvas registers the draft asset library's JS as a root-relative route URL (`/canvas/api… ### [Strengthen test coverage for multi-translation multi-component instance automatic version updating](https://git.drupalcode.org/project/canvas/-/work_items/3591730) State: opened | Updated: 2026-06-25 | Author: Wim Leers (wimleers) | Assigned: unassigned | Labels: technical debt, translation Description: The following discussion from !1271 should be addressed: - [ ] @wimleers started a [discussion](https://git.drupalcode.org/project/canvas/-/merge_requests/1271#note_1271204): (+4 comments) > :bug: This is not what happens: not only _selected_ translations are published, they _all_ are published. Thanks to > ```php > $snapshots = AutoSaveManager::groupContentEntityAutoSaves($publish_auto_saves)[$group_key]; > ``` > in the `POST` controller. > > If that weren't the case, the `ComponentTreeSymmetricalTranslationConstraintValidator` would fail on content entities, a… ### [Flat named component validation in @drupal-canvas/eslint-config misses sibling entrypoints](https://git.drupalcode.org/project/canvas/-/work_items/3591717) State: closed | Updated: 2026-06-25 | Author: Bálint Kléri (balintbrews) | Assigned: Bálint Kléri (balintbrews) | Labels: category::bug, cliTool Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1284 [fix(CLI Tool): #3591717 Flat named component validation in @drupal-canvas/eslint-config misses sibling entrypoints](https://git.drupalcode.org/project/canvas/-/merge_requests/1284) | State: merged 2026-06-25 | Author: Bálint Kléri (balintbrews), 177 diff lines Description: The CLI supports flat named components where multiple components share one directory: - `src/components/card.component.yml` - `src/components/card.tsx` - `src/components/pricing-table.component.yml` - `src/components/pricing-table.tsx` `@drupal-canvas/eslint-config` identifies only one named `*.component.yml` file in a directory when deciding whether a JavaScript or TypeScript file is a component entrypoint. Rules such as `component-exports` can skip sibling flat component entrypoints. **Out of scope** `@drupal-canvas/cli` validates each discovered component by linting its directory. When… ### [Canvas AI: canvas_ai_post_update_0003 strips the orchestrator agent UUID via setData()](https://git.drupalcode.org/project/canvas/-/work_items/3591660) State: closed | Updated: 2026-06-25 | Author: Matt Glaman (mglaman) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Innovation, ai, state::rtbc Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1230 [Issue #3591660: Preserve agent UUID in canvas_ai post_update 0003 and repair affected sites](https://git.drupalcode.org/project/canvas/-/merge_requests/1230) | State: merged 2026-06-25 | Author: Matt Glaman (mglaman), 164 diff lines Description: ## Overview `canvas_ai_post_update_0003_reimport_orchestrator_agent()` in `modules/canvas_ai/canvas_ai.post_update.php` reimports the orchestrator agent to pick up a changed system prompt (follow-up to [#3582390](https://www.drupal.org/project/canvas/issues/3582390)). It reads `config/install/ai_agents.ai_agent.canvas_ai_orchestrator.yml` and calls `->setData($data)->save(TRUE)`. The install file has no top-level `uuid` key. `setData()` replaces the entire config record, so the existing `uuid` is dropped from the active `ai_agents.ai_agent.canvas_ai_orchestrator` config. The hook shipped in … ### [Use notifications to inform users about the detected conflicts](https://git.drupalcode.org/project/canvas/-/work_items/3591715) State: opened | Updated: 2026-06-25 | Author: Feliksas Mazeikis (f.mazeikis) | Assigned: Feliksas Mazeikis (f.mazeikis) | Labels: 1.x-dev, Conflict resolution, backend, priority::minor Description: We should use Canvas notifications to notify users about the detected conflicts. Designs and more detailed description is pending. ### [Boolean props auto-enable when another prop is changed in the Canvas form](https://git.drupalcode.org/project/canvas/-/work_items/3591716) State: opened | Updated: 2026-06-25 | Author: Alamgir Hossain (alamgir.hossain.cse) | Assigned: unassigned | Labels: Description: ## Summary In Canvas, when editing a component that has boolean props (e.g. `card-program`), changing any non-boolean prop causes all boolean props to appear enabled (toggle switches flip to ON) even though the user never toggled them. ## Root causes Two bugs were identified: ### 1. `|| []` coerces boolean `false` to `[]` in `layoutModelSlice.ts` In `_addNewComponentToLayout` → `buildInitialData()`, when building the initial model for a newly dropped component: ```typescript // BEFORE (buggy): initialData.resolved[propName] = prop.default_values?.resolved || []; // For boolean false: fal… ### [Automated Drupal 12 compatibility fixes for canvas 1.x-dev](https://git.drupalcode.org/project/canvas/-/work_items/3591603) State: opened | Updated: 2026-06-25 | Author: project update bot (Project-Update-Bot) | Assigned: Wim Leers (wimleers), Björn Brala (bbrala), project update bot (Project-Update-Bot) | Labels: AI-accelerated, DX (Developer Experience), Drupal 12 compatibility, priority::major 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… ### [Canvas AI: Component context required props missing required flag](https://git.drupalcode.org/project/canvas/-/work_items/3591655) State: opened | Updated: 2026-06-25 | Author: AKHIL BABU (AkhilBabu) | Assigned: Tormi Tabor (tormi) | Labels: 1.x-dev, AI Initiative Sprint, AI Innovation, Novice Description: ## Problem A regression in `CanvasAiPageBuilderHelper::processSdc()` causes the `required: true` flag to be dropped from component context metadata. Current code: `// Mark required props. if (isset($sdc_definition['props']['required']) && \in_array($prop_name, $sdc_definition['props']['required'], TRUE)) { $output[$source_id]['components'][$component_id]['props'][$prop_name]['required'] = TRUE; } ` The flag should instead be added to the prop metadata: `// Mark required props. if (isset($sdc_definition['props']['required']) && \in_array($prop_name, $sdc_definition['props']['required'], … ### [Canvas AI: Remove hardcoded component source IDs](https://git.drupalcode.org/project/canvas/-/work_items/3591652) State: closed | Updated: 2026-06-25 | Author: AKHIL BABU (AkhilBabu) | Assigned: unassigned | Labels: 1.x-dev, AI Initiative Sprint, AI Innovation, ai Description: The Update hook added in #3573571 uses hardcoded plugin IDS, Replace them with constants See: https://git.drupalcode.org/project/canvas/-/merge_requests/606#note_1080422 ### [Canvas AI: An unexpected error has occurred while rendering preview](https://git.drupalcode.org/project/canvas/-/work_items/3556922) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative Sprint, AI Innovation, AI Page Generation, ai Description: > [!note] Migrated issue > > > > > > Reported by: [akhil babu](https://www.drupal.org/user/3632866) > > Related to !813 ### Overview Getting the following error occasionally when generating a title, metadata, or adding components using the Page Builder agent from the chat interface. ![/files/issues/2025-11-10/Image-%201_0.png](https://www.drupal.org/files/issues/2025-11-10/Image-%201_0.png) This error usually occurs when new components are added or a full page is generated while the title and description are empty. Currently the UI has 3 separate handlers for adding/updating canvas page… ### [Refactor away the brittle`PageRegion::forAutoSaveData()`](https://git.drupalcode.org/project/canvas/-/work_items/3591728) State: opened | Updated: 2026-06-25 | Author: Wim Leers (wimleers) | Assigned: unassigned | Labels: auto-save, technical debt Description: The following[discussion](https://git.drupalcode.org/project/canvas/-/merge_requests/1271#note_1273102) from !1271 should be addressed: > :thinking: In principle, this needs tests. > > But this has been thoroughly manually tested. During that manual testing, @tedbow found a bug, for example, and it was _not_ here: `::testPageRegionComponentPropRemovalCreatesAutoSavesForTranslation()`. > > :bug: > 1. There are 6 calls to this method in total. 5 of them in tests. The sole remaining one is the one that led to discovering this is wrong in HEAD. > 2. That `@todo` has been there for 1.5 year, and… ### [Add `canvas-validate-component-trees` Drupal CLI command to check health of Canvas component trees: validate every Canvas (content|config) entity, validate every content entity component tree field revision+translation](https://git.drupalcode.org/project/canvas/-/work_items/3591667) State: opened | Updated: 2026-06-25 | Author: Wim Leers (wimleers) | Assigned: Wim Leers (wimleers) | Labels: Configuration schema, DX (Developer Experience), Needs ADR, data integrity Description: Title says it all. Context: Acquia Source has adopted Canvas long before it had a stable data model, and hence long before Canvas provided update paths. This has proven to cause seemingly random bugs during deployment, but time and time again the root cause has been data created _before_ Canvas provided update paths. This has been a time-consuming and costly affair (e.g. #3578865, #3579086). Canvas has invested _heavily_ into thorough validation to spot data integrity problems, to be able to guarantee that "if it passes validation, it will work [render + be editable with good UX]". ## Propo… ### [Deleting optional props from an SDC/code component causes validation errors in config-defined component instances: regression for monolingual sites, bug for multilingual sites](https://git.drupalcode.org/project/canvas/-/work_items/3591727) State: opened | Updated: 2026-06-25 | Author: Wim Leers (wimleers) | Assigned: unassigned | Labels: DX (Developer Experience), Regression, componentSources, data integrity Description: The following [discussion](https://git.drupalcode.org/project/canvas/-/merge_requests/1271#note_1273034) from !1271 should be addressed: > :warning: :exploding_head: While sprinkling `self::assertEntityIsValid(…)` calls over @tedbow's a41099c6d32b6e13296eb0325b1a94cf8ef14b16, this was a highly unexpected find! > > This means #3591667+ would be surfacing validation errors for many component trees using `sdc` or `js` component instances that have had optional props removed. > > Fixing it is out of scope here; needs follow-up. ### Problem Removing an optional prop from an SDC/code component … ### [Symmetrically translatable config-defined component trees, STEP 2: change config schema type for `inputs` to allow translating via core's Config Translation UI for ContentTemplates & PageRegions](https://git.drupalcode.org/project/canvas/-/work_items/3582478) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: AI-accelerated, Configuration schema, category::task, configManagement Description: >>> [!note] Migrated issue Reported by: [wim leers](https://www.drupal.org/user/99777) Related to !898 !901 !868 >>> Approach For high-level overview, see the change record. ADR: !901 Implementation MR #1: !962 in #3586342: Symmetrically translatable component trees, STEP 1: introduce `ComponentInstanceInputsConfigSchemaGeneratorInterface` Implementation MR #2: !898, here Implementation MR #3: !831 in https://git.drupalcode.org/project/canvas/-/work_items/3582464 Overview The explicit inputs for a component instance in a config-defined component tree currently looks like this: diff --gi… ### [Changing Metadata Clears Canvas AI Prompt Text](https://git.drupalcode.org/project/canvas/-/work_items/3558257) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative Sprint, AI Innovation, AI Page Generation, ai Description: >>> [!note] Migrated issue Reported by: [vipin.mittal18](https://www.drupal.org/user/319716) Related to !530 >>> Overview When composing a prompt in Canvas AI, if any page metadata (such as meta description) is modified before submitting the prompt, all previously entered text in the Canvas AI prompt field is erased. Proposed resolution Updating any metadata field (title, description, etc.) should not clear the text entered in the Canvas AI prompt field. The data in the Canvas AI prompt and in the metadata fields should be managed independently without interference from one another. St… ### [Canvas AI: Expose Props of Blocks to the Agent](https://git.drupalcode.org/project/canvas/-/work_items/3569120) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative, AI Product Development, ai, category::bug 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: UI/Functional update. Lock the canvas during a build and add a long-running AI-tasks UI element to the chat](https://git.drupalcode.org/project/canvas/-/work_items/3591724) State: opened | Updated: 2026-06-25 | Author: Aidan Foster (aidanfoster) | Assigned: unassigned | Labels: Description: **Source:** Drupal AI UX Weekly Meeting, June 22, 2026. @Marcus_Johansson reviewed and gave an update on the prototype Drupal Canvas AI brand @AkhilBabu based on the experimental prototype that creates components one-at-a-time on this experimental branch https://github.com/akhilbabu-qed-42/c2026/tree/canvas-ai-poc The approach looks very promising from early testing but we need to update the UI to accommodate the changes. ## **Problem / Motivation** Canvas AI now builds a page component by component. While it is building, interacting with the canvas (adding or removing components) breaks… --- MERGE REQUESTS (24h) --- ### [chore(deps): update dependency cspell to v10](https://git.drupalcode.org/project/canvas/-/merge_requests/1273) State: opened | Author: **** (project_19391_bot_cb443e60680723bba08a5351bf595251) | Branch: renovate/major-cspell-monorepo | 13 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/) | |---|---|---|---| | [cspell](https://cspell.org/) ([source](https://github.com/streetsidesoftware/cspell/tree/HEAD/packages/cspell)) | [`^9.2.0` → `^10.0.0`](https://renovatebot.com/diffs/npm/cspell/9.7.0/10.0.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/cspell/10.0.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/cspell/9.7.0/10.0.1?slim=true) | > :exclamation: **I… ### [chore(deps): update mysql docker tag to v8.3](https://git.drupalcode.org/project/canvas/-/merge_requests/1272) State: opened | Author: **** (project_19391_bot_cb443e60680723bba08a5351bf595251) | Branch: renovate/mysql-8.x | 13 diff lines Description: This MR contains the following updates: | Package | Type | Update | Change | Pending | |---|---|---|---|---| | mysql | service-image | minor | `8.0` → `8.3` | `8.4` | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - "before 6am on Monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] If you want to r… ### [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 | 77 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.11.3`](https://renovatebot.com/diffs/npm/@axe-core%2fplaywright/4.11.1/4.11.3) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@axe-core%2fplaywright/4.11.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@axe-core%2fplaywright/4.11.1/4.11.3?slim=true) | | [@babel/parser](… ### [fix(autoSave, internalHttpApi): #3591729 Register draft asset library JS as external so locale's JS scan skips it](https://git.drupalcode.org/project/canvas/-/merge_requests/1293) State: merged 2026-06-25 | Author: Christian López Espínola (penyaskito) | Branch: 3591729-draft-asset-library-js-asset-registered-as-a-file-triggers-file-get-contents-warning-in-locales-js-scan | 19 diff lines Description: ### Overview On a multilingual site, page renders that include a Canvas asset library draft emit a PHP warning: ``` file_get_contents(canvas/api/v0/auto-saves/js/asset_library/global): Failed to open stream: No such file or directory in _locale_parse_js_file() (core/modules/locale/locale.module:771) ``` `locale` scans every JavaScript asset of type `file` on a page to extract `Drupal.t()` strings, reading each one with `file_get_contents()`. Canvas registered the draft asset library JS as a root-relative route URL, which the library parser classified as a local `file`. `locale` then tried… ### [feat(CLI Tool): Clean up the output of all CLI commands](https://git.drupalcode.org/project/canvas/-/merge_requests/1280) State: opened | Author: Bálint Kléri (balintbrews) | Branch: 3591712-cli-output-cleanup | 6437 diff lines Description: (Merge !1284 first.) Updates Canvas CLI output to use compact, line-oriented `@clack/prompts` reporting across commands. - Replaces table-style command summaries with readable status sections. - Improves `push` and `pull` success, partial failure, and error output. - Normalizes wording for brand kit, validation, preparation, uploads, and skipped work. - Removes the CLI `table` dependency. Reports done by a custom tool I vibe coded for testing the changes: https://balintbrews.github.io/canvas-cli-output-report Closes #3591712. Authored with an AI coding agent. ### [#3591654 "Update the delete link generation in ApiLayoutController.php to use canvas.api.config.translation.delete in the template context"](https://git.drupalcode.org/project/canvas/-/merge_requests/1234) State: merged 2026-06-24 | Author: Kunal Sachdev (kunal.sachdev) | Branch: 3591654-update-the-delete-link-generation-in-apilayoutcontrollerphp-to-use-canvasapiconfigtranslationdelete-in-the-template-context | 488 diff lines Description: ## Testing instructions - [ ] Enable the `canvas` `canvas_test_sdc` `language` `canvas_dev_translation` `content_translation` `config_translation` modules. - [ ] Visit `/admin/config/regional/language` and add French. - [ ] Create an Article. - [ ] Visit the Canvas editor and add a template for article full content. - [ ] Add a Heading/Hero component to the template and publish the template. - [ ] Verify that checkmark is displayed only for english language in language selector drop down in top bar. - [ ] Visit `admin/structure/content-template/node.article.full/translate` to translate the con… ### [fix(autoSave, internalHttpApi): #3591729 Register draft asset library JS as external so locale's JS scan skips it](https://git.drupalcode.org/project/canvas/-/merge_requests/1292) State: closed | Author: Christian López Espínola (penyaskito) | Branch: 3591729-draft-asset-library-js-asset-registered-as-a-file-triggers-file-get-contents-warning-in-locales-js-scan Description: ### Overview On a multilingual site, page renders that include a Canvas asset library draft emit a PHP warning: ``` file_get_contents(canvas/api/v0/auto-saves/js/asset_library/global): Failed to open stream: No such file or directory in _locale_parse_js_file() (core/modules/locale/locale.module:771) ``` `locale` scans every JavaScript asset of type `file` on a page to extract `Drupal.t()` strings, reading each one with `file_get_contents()`. Canvas registered the draft asset library JS as a root-relative route URL, which the library parser classified as a local `file`. `locale` then tried… ### [feat(Conflict detection): #3591601 "Conflict resolution via API call and layout endpoint support for published entities"](https://git.drupalcode.org/project/canvas/-/merge_requests/1194) State: opened | Author: Feliksas Mazeikis (f.mazeikis) | Branch: 3591601-rudimentary-conflict-resolution-ui-be | 1041 diff lines Description: **TL;DR:** Modifies the `ApiContentAutoSaveControllers::patch()` to allow updating auto-save item conflict as resolved; Adds optional argument to the `ApiLayoutController::get()` that allows fetching layout of a published entity. **Long version:** This MR adds "Ability to resolve conflict by keeping changes in the auto-save" and an "ability to load the visual preview of both auto-save and published version of the entity with conflict" capability described in the https://git.drupalcode.org/project/canvas/-/milestones/3 milestone. It is BE implementation of #3591601 and BE dependency of !11… ### [feat: #3518272 support all entity types with configurable displays for content templates](https://git.drupalcode.org/project/canvas/-/merge_requests/791) State: opened | Author: Adam G-H (phenaproxima) | Branch: 3518272-field-ui-base-route | 1702 diff lines Description: Closes #3518272 ### [Issue #3591652: Replace hardcoded component source plugin IDs with SOURCE_PLUGIN_ID constants](https://git.drupalcode.org/project/canvas/-/merge_requests/1255) State: merged 2026-06-25 | Author: Abhishek Dhariwal (adaptative) | Branch: 3591652-remove-hardcoded-source-ids | 88 diff lines Description: Follow-up to #3573571 (MR !606), addressing https://git.drupalcode.org/project/canvas/-/merge_requests/606#note_1080422 ### Summary `canvas_ai_post_update_0005_normalize_component_description_settings()` listed the allowed component source plugin IDs as literal strings (`['sdc', 'js', 'block']`). This replaces them with the existing source plugin constants: - `SingleDirectoryComponent::SOURCE_PLUGIN_ID` - `JsComponent::SOURCE_PLUGIN_ID` - `BlockComponent::SOURCE_PLUGIN_ID` The values are unchanged, so the update hook behaves identically. Only `modules/canvas_ai/canvas_ai.post_update.php` ch… ### [#3591714: Resolve "Translating unpublished page crashes canvas"](https://git.drupalcode.org/project/canvas/-/merge_requests/1282) State: opened | Author: Kunal Sachdev (kunal.sachdev) | Branch: 3591714-translating-unpublished-page-crashes-canvas | 298 diff lines Description: [Description of changes] ## Testing instructions - [ ] First step for someone to test the changes in this MR Closes #3591714 ### [Issues/3569120: Canvas AI: Expose Props of Blocks to the Agent.](https://git.drupalcode.org/project/canvas/-/merge_requests/498) State: opened | Author: AKHIL BABU (AkhilBabu) | Branch: 3569120-canvas-ai-expose | 272 diff lines Description: Closes #3569120 ### [Issues/Canvas AI: An unexpected error has occurred while rendering preview](https://git.drupalcode.org/project/canvas/-/merge_requests/813) State: opened | Author: AKHIL BABU (AkhilBabu) | Branch: 3556922-canvas-ai-an | 278 diff lines Description: Closes #3556922 ### [feat(Conflict detection): #3587526 "Detect conflicts during publishing of changes to Page entity"](https://git.drupalcode.org/project/canvas/-/merge_requests/1193) State: opened | Author: Feliksas Mazeikis (f.mazeikis) | Branch: 3587526-prevention-of-publishing-be | 774 diff lines Description: **TL;DR:** Adds `HTTP 409` response to the "publish auto-save items" endpoint; Prevents publishing on the BE if [a conflict is detected](https://git.drupalcode.org/project/canvas/-/merge_requests/1213); **For people with attention span or AI summary tools:** This MR adds "Prevent publishing of auto-save items with detected conflicts on BE" capability described in the "\[META\] Review of changes and Conflict resolution" (https://git.drupalcode.org/project/canvas/-/work_items/3587587). It is BE implementation of https://git.drupalcode.org/project/canvas/-/work_items/3587526 and counter-part o… ### [Draft: feat(Conflict detection): #3591668 "Text-based Page entity representation via Canvas API"](https://git.drupalcode.org/project/canvas/-/merge_requests/1241) State: opened | Author: Feliksas Mazeikis (f.mazeikis) | Branch: 3591668-text-based-comparison-of-entities | 305 diff lines Description: **TL;DR:** Adds a new endpoint that provides Page entity in text-based format using default content exporter in core. For people with attention span or AI summary tools: BE part of "#3591668+" which is part of the "\[META\] Review of changes and Conflict resolution (https://git.drupalcode.org/project/canvas/-/work_items/3587587)". Adds the BE infrastructure required for the "Comparison of entities using text-based representation in side-by-side UI" capability. To keep the scope manageable, changes are limited to `Page` (`canvas_page`) entities. Effort is made to leave path open for other en… ### [Fix Canvas AI prompt reset on metadata changes](https://git.drupalcode.org/project/canvas/-/merge_requests/530) State: opened | Author: scott falconer (scottfalconer) | Branch: 3558257-changing-metadata-clears | 896 diff lines Description: ## Issue https://www.drupal.org/project/canvas/issues/3558257 ## Root cause `DeepChat` received inline object and function props — `images`, `requestBodyLimits`, the `connect` handler, and the style objects — recreated on every render. Editing page metadata re-rendered the component, so `DeepChat` saw new prop references, rebuilt its input, and cleared the typed prompt. ## Change - Memoize `DeepChat` and pass stable references. - Move static props to module-scope constants. - Move the `connect` handler into `useCallback`; it reads the latest values via refs. - Back the `onComponentRender` gu… --- COMMITS (24h) --- - [595b4dc1](https://git.drupalcode.org/project/canvas/-/commit/595b4dc19f98309910ee6e9987cab0af6af5abb8) chore(Data model): #3591726 Component inputs order is database-backend-dependent: fix inputs key order assertions in tests and enforce it via PHPStan when possible — Christian López Espínola (2026-06-26T02:30:30.000+00:00) - [47da2b21](https://git.drupalcode.org/project/canvas/-/commit/47da2b211e2078afdb511071b57358cccad2e2b1) chore(Conflict detection): #3591725 Put conflict detection behind a dev mode flag — Feliksas Mazeikis (2026-06-25T22:12:11.000+00:00) - [49f7adb9](https://git.drupalcode.org/project/canvas/-/commit/49f7adb95f192213d48b712762fc07666615aa1c) feat(Data model, translation): #3591596 Symmetric translation: component instance version updates must propagate to all translations — Wim Leers (2026-06-25T21:49:51.000+00:00) - [3c5876ae](https://git.drupalcode.org/project/canvas/-/commit/3c5876ae084ecc76665f2a0bbaf17d30bb055095) fix(autoSave, internalHttpApi): #3591729 Draft asset library JS asset registered as a file triggers file_get_contents() warning in locale's JS scan — Christian López Espínola (2026-06-25T20:09:09.000+00:00) - [8bf3d75f](https://git.drupalcode.org/project/canvas/-/commit/8bf3d75ff5edd885197515d4946faebf5662c2e1) fix(CLI Tool): #3591717 Flat named component validation in @drupal-canvas/eslint-config misses sibling entrypoints — Bálint Kléri (2026-06-25T17:36:42.000+00:00) - [2d14167b](https://git.drupalcode.org/project/canvas/-/commit/2d14167b78f237255d5f3b4e35c8ba7f84bf6239) fix(AI): #3591660 Canvas AI: Fix orchestrator UUID lost by setData(); add UUID recovery — Matt Glaman (2026-06-25T17:29:04.000+00:00) - [bade3e9d](https://git.drupalcode.org/project/canvas/-/commit/bade3e9d55d1c637e52defe5fa6edd3d900c2dc5) refactor(AI): #3591652 Canvas AI: replace hardcoded component source IDs with SOURCE_PLUGIN_ID constants — Abhishek Dhariwal (2026-06-25T11:48:03.000+00:00) ======================================================================== ## [44] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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

                                                                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). ### [Add full view layout for context item canonical and revision pages based on new design](https://git.drupalcode.org/project/ai_context/-/work_items/3586220) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 10 Description: ## Problem/motivation Follow-up to: #3586141 ### Summary Replace the default field-list entity view at `/admin/ai/context/items/{id}` with a designed **full** view mode: two-column layout (main content + sidebar), scope/subcontext details, and subcontext navigation. The same layout is used on revision view routes. ### Design and walkthrough There is a new design for the context view page based on UX review and feedback. ### Problem The canonical context item page rendered the default entity view display — a plain field list that was hard to scan and did not surface scope, subconte… ### [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-06-25 | Author: project update bot (Project-Update-Bot) | Assigned: unassigned | Labels: AI Context Management, AI Innovation, category::feature, priority::normal 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… ### [Question about "Subcontext type = Conditional - included based on relevance"](https://git.drupalcode.org/project/ai_context/-/work_items/3586149) State: closed | Updated: 2026-06-25 | Author: Michael Anello (ultimike) | Assigned: unassigned | Labels: AI Initiative Sprint, category::support, priority::normal, what::miscellaneous Description: I think this is more of a documentation issue/task, but I wanted to surface it regardless. When creating a Subcontext item, and "Subcontext type = Conditional - included based on relevance", does that mean that it will only be used if the LLM deems it worthy for inclusion via its "Purpose" content? thanks, -mike ### [Fix PHPStan failures in CCC](https://git.drupalcode.org/project/ai_context/-/work_items/3586238) State: closed | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 10 Description: ## Fix PHPStan failures in ai_context **Type:** Code quality **PHPStan level:** 2 **Status:** `./lint.sh` fails with **16 errors** ### Reproduce ```bash php -d memory_limit=512M vendor/bin/phpstan analyze web/modules/custom/ai_context \ --configuration=web/modules/custom/ai_context/phpstan.neon.dist ``` ### Errors (3 groups) **1. Entity field typing (1)** — `src/Entity/AiContextItem.php:270` `FieldDefinitionInterface` has no `setLabel()`. Narrow to `BaseFieldDefinition` before chaining setters. **2. Diff builder return types (5)** — `DynamicEntityReferenceFieldBuilder.php` (4), `… ### [No public API for building scope subscription forms; consumers must depend on the internal scope manager](https://git.drupalcode.org/project/ai_context/-/work_items/3586287) State: closed | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Description: ## Problem/Motivation There is no supported way for a contrib module to render a scope-subscription UI (the "subscribe to these scope values" widget) outside of an AI agent. The only mechanism is `plugin.manager.ai_context_scope`, which `docs/developers/api-stability.md` explicitly lists as **internal**. As a result, any non-agent consumer that wants per-entity scope subscriptions must reimplement the logic already living in `AiContextAgentForm`: - iterate `getScopePlugins()`, skip disabled / `!supportsSubscriptions()` plugins, - call `buildValueForm(..., for_subscription: TRUE)` per plugin… ### [Add Configure Link in Modules Page](https://git.drupalcode.org/project/ai_context/-/work_items/3586285) State: closed | Updated: 2026-06-25 | Author: Rob Loach (robloach) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Description: ## Summary On the module page, add a Configure link on the Context Control Center. ## Problem When you look at the module page, it's nice to have Configure links for each module, because then you can get to the pages quickly in a standard UX pattern. ## Proposed solution *(optional)* Add the Configure links on the Context Control Center modules. ## Workaround *(optional)* Visiting `admin/index` and finding the link from there. ## Affected functional areas *(optional)* Administration UI > [!note] > Check the one that best describes your usage, or leave all unchecked if AI was … ### [Copy and layout updates on context item scope form](https://git.drupalcode.org/project/ai_context/-/work_items/3586284) State: closed | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Description: ## Problem/motivation Follow-up to: #3586196+s **_Note that some of these things may have already been implemented in separate issues._** The **Context Scope** section on the context item edit form needs a few small copy and layout tweaks: clearer help text, less clutter, and a more logical order for the summary badges. No matching logic or scope model changes — just form presentation. ## Solution ### Context item form - [x] Remove the **Context Scope Settings** link from the section description. - [x] Update the section description to: > Control when this context item is included. … ### [`hook_ai_context_scope_values_alter()` is ignored by scope forms and labels](https://git.drupalcode.org/project/ai_context/-/work_items/3586286) State: closed | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: blocker::stable, category::bug, priority::major, state::accepted Description: ## Problem/Motivation `hook_ai_context_scope_values_alter()` is documented (in `ai_context.module` and `docs/developers/hooks.md`) to alter scope values "for display in forms or for matching." In practice it does neither. The alter is only invoked in `AiContextScopeManager::getAllScopeValues()`, which no form or resolver calls: - **Forms** (`AiContextItemForm`, `AiContextAgentForm`) build scope widgets via `$plugin->buildValueForm()`, which reads raw `AiContextScopeBase::getValues()` — the alter never runs. A value added by the hook (e.g. a custom `use_case`) cannot be selected in the UI. -… ### [Fix phpstan error in AiContextSubcontextToggleTrait](https://git.drupalcode.org/project/ai_context/-/work_items/3586259) State: closed | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 11 Description: ## Problem On local, running ./lint.sh on 1.0.x, phpstan errors show up but the pipeline was green ``` Running phpstan (static analysis)... 165/165 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100% ------ ------------------------------------------------------------------------------------------------------------- Line src/Service/AiContextSubcontextToggleTrait.php (in context of class Drupal\ai_context\Entity\AiContextItem) ------ ------------------------------------------------------------------------------------------------------------- 31 Call to an undefined method Drupal\Core\Typed… ### [CCC UX sync 27 May 2026](https://git.drupalcode.org/project/ai_context/-/work_items/3586236) State: closed | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 10 Description: ## Problem/motivation We have a lot of important UX issues to cover including: - https://git.drupalcode.org/project/ai_context/-/work_items/3586220 - https://git.drupalcode.org/project/ai_context/-/work_items/3586219 - https://git.drupalcode.org/project/ai_context/-/work_items/3586228 - https://git.drupalcode.org/project/ai_context/-/work_items/3586214 - https://git.drupalcode.org/project/ai_context/-/work_items/3586229 - https://git.drupalcode.org/project/ai_context/-/work_items/3586198 - https://git.drupalcode.org/project/ai_context/-/work_items/3586197 - https://git.drupalcode.org/project… ### [Improve conditional subcontext disabled-state behavior and admin UX](https://git.drupalcode.org/project/ai_context/-/work_items/3586292) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Innovation, AI Sprint 13, category::task Description: ## Description Follow-up to: #3586207+s ### Summary When **Enable conditional subcontext AI decisions** (`conditional_subcontext_enabled`) is off, conditional subcontext children should not participate in normal context selection. This issue implements that behavior and adds admin UX so editors understand why conditional items are inactive, can reach the setting to re-enable the feature, and get clear warnings when editing affected items. ### Problem / motivation Previously, disabling conditional subcontext AI caused **all conditional children to be included without an AI call**. That wa… ### [Error when running database updates from beta2 to latest -dev](https://git.drupalcode.org/project/ai_context/-/work_items/3586290) State: opened | Updated: 2026-06-25 | Author: Michael Anello (ultimike) | Assigned: unassigned | Labels: Description: I just tried running `drush updb` on a site that previously had CCC beta2 and now has the latest -dev. Most of the updates ran fine, but I couldn't get past this one: ``` $ ddev drush updb ------------ ----------------------------------- ------------- ------------------------------------------------------- Module Update ID Type Description ------------ ----------------------------------- ------------- ------------------------------------------------------- ai_context 0002_install_default_view_displa… ### [[Feature] Add ExternalContextProviderInterface and ContextQueryInterface to support RAG/vector store integrations](https://git.drupalcode.org/project/ai_context/-/work_items/3586289) State: opened | Updated: 2026-06-25 | Author: josecarlosmedero | Assigned: unassigned | Labels: AI Context Management, AI Innovation, AI Sprint 13, blocker::stable Description: ## Summary Follow-up to: #3586257+s ## Problem We built an external RAG integration on top of CCC (AI Knowledge Connector — a vector store + semantic retrieval module for Drupal 11) and hit three specific API gaps that currently require workarounds. We're raising these before rc1 so the team can evaluate whether a formal API would be worth adding to make the integration pattern stable and documented for the ecosystem. The current workaround path works (we're using `BuildSystemPromptEvent`) but it's fragile across agent types, bypasses CCC's token limit logic, and gives no observability … ### [Add #[RunTestsInSeparateProcesses] attribute to all kernel test classes](https://git.drupalcode.org/project/ai_context/-/work_items/3586280) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Description Drupal 11.3 deprecates kernel test classes that do not declare the PHPUnit `#[RunTestsInSeparateProcesses]` attribute. From Drupal 12.0, missing the attribute will throw an exception ([change record](https://www.drupal.org/node/3548485)). The ai_context module currently has **4 of 39** kernel test classes with the attribute: - `AiContextChildrenServiceTest` - `AiContextItemFormGlobalCountTest` - `AiContextTextFieldMigrationTest` - `AiContextUpdate10010Test` The remaining **35** kernel test classes need: ```php use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses; #… ### [Introduce explicit scope types and item inclusion modes; clarify selection in UI and docs](https://git.drupalcode.org/project/ai_context/-/work_items/3586281) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Summary Follow-up to: - #3586243+s - #3586270+s - #3586196+s _**The two decisions still worth locking before this lands: **(1)** `type` derived vs declared, and **(2)** Entity bundle's default inclusion mode.**_ **Builds on (must land first):** #3586243+s — the scope plugin persistence API and capability-flag refactor. **Keep in mind when architecting:** #3586197+s — boundaries / exclusions builds on this. Beta feedback shows site builders don't have an accurate mental model of how context **scopes** decide what actually reaches an agent's prompt. After #3586243 the *plumbing* is clea… ### [Promote Document Loader: Context Importer from experimental to stable](https://git.drupalcode.org/project/ai_context/-/work_items/3586282) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Description Follow-up to: #3586275+s canvas#3575644+s ### Summary The `ai_context_document_loader` submodule (Document Loader: Context Importer) is currently marked `lifecycle: experimental`. The initial integration work is largely complete: upstream dependencies are on stable constraints (`document_loader:^2.0.3`, `ai_file_to_text:^1.0`), and temporary Document Loader Composer patches have been removed. Before removing the experimental lifecycle flag, we should close out documentation, testing, and install-behavior follow-ups. The Canvas StringLongItemOverride patch ([#3575644](https:… ### [Update project page to make it more clear that CCC is for agents](https://git.drupalcode.org/project/ai_context/-/work_items/3586278) State: opened | Updated: 2026-06-25 | Author: Michael Anello (ultimike) | Assigned: unassigned | Labels: AI Context Management, AI Innovation, AI Sprint 13, AI UX Description: Via https://git.drupalcode.org/project/ai_context/-/work_items/3586270#note_1263889, I think the main CCC project page description should be super-clear that CCC is currently designed to only work with AI agents and not other AI-related tasks. At the very least, I suggest the first sentence of the project description on https://www.drupal.org/project/ai_context be changed from: > Context Control Center (CCC) helps Drupal AI use your content, rules, and standards to deliver more accurate, relevant results. to > Context Control Center (CCC) helps Drupal AI **agents** use your content, rules,… ### [CCC beta / pre-rc1 community testing](https://git.drupalcode.org/project/ai_context/-/work_items/3586234) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: Michael Anello (ultimike) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 11 Description: ## Problem/motivation We want to get feedback from the community on CCC as we want to lock down our features soon so we can release rc1 and ultimately 1.0 soon. ## Solution Recruit CCC testers to help with this. ## Resources - [Project page](https://www.drupal.org/project/ai_context) - [Setup instructions](https://www.drupal.org/project/ai_context#install-testing-steps) - [Documentation](https://git.drupalcode.org/project/ai_context/-/tree/1.0.x/docs?ref_type=heads) - [NYC AI summit session](https://drupal.tv/events/drupal-ai-summit-new-york-city-2026/context-driven-ai-consistent-complian… ### [Test AI Best Practices skills on AI Context codebase](https://git.drupalcode.org/project/ai_context/-/work_items/3586258) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Description: ## Problem/motivation We have a project with skills (among other things) to help with Drupal coding called [AI Best Practices](https://www.drupal.org/project/ai_best_practices). AI Context (CCC) development heavily uses AI assigned and generated code. It may benefit from using the best practice skills. Right now there are these skills: - drupal-accessibility - drupal-automated-testing - drupal-configuration - drupal-expert-corrections - drupal-gitlab - drupal-render-pipeline - drupal-writing-documentation ## Solution Install skills from AI Best Practices and run a through code review with… ### [Rename entity bundle and target entity scope plugins for better DX](https://git.drupalcode.org/project/ai_context/-/work_items/3586276) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: Tamas Balog (tbalog) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 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… ### [Allow subcontext scope to override parent scope](https://git.drupalcode.org/project/ai_context/-/work_items/3586218) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 10 Description: ## Problem/motivation Follow-up to: #3576092 ## Solution From the other issue: Discussion with Emma+Aidan at UX sync: - Toggle (true/false) is defaulted to "Same as parent" (true) right above Global and then hide all of them - Description: "Disable to customize scope." Here's a [plan from cursor](https://www.drupal.org/files/issues/2026-04-21/subcontext_scope_inheritance_51216439.plan_.md) that can be updated to reflect ^ ## Tasks - [x] Add code - [x] Review code - [ ] Manually test code ## AI usage - [ ] AI assisted issue - [ ] AI assisted code - [x] AI generated code ### [[Discuss] Moderation status of subcontext vs parent context items](https://git.drupalcode.org/project/ai_context/-/work_items/3586264) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Description: ## Problem/motivation You can unpublish a parent context item while having published subcontext items. ## Solution Discuss what makes sense for the moderation of parent/child items. ## Tasks - [x] Discuss and decide on behavior - [x] ~~Create follow-up issues as needed~~ (did MR on this issue) ### [Finalize Context Importer naming and review Extensions page UI/UX](https://git.drupalcode.org/project/ai_context/-/work_items/3586283) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Description: ## Description Follow-up to: #3586275+s Required for: #3586282+s ### Summary [#3586275](https://www.drupal.org/project/ai_context/issues/3586275) introduced the `ai_context_document_loader` submodule and a reworked **Settings → Extensions** page (`/admin/config/ai/context/settings/extensions`). Initial UX feedback has been considered, but needs refinement. For now, the submodule has been renamed from “Document Loader: Markdown Importer” to **“Document Loader: Context Importer”**. Before the submodule stabilization follow-up (experimental → stable) (#3586282), we need a focused pass to *… ### [Possible UX improvements on new context listing page](https://git.drupalcode.org/project/ai_context/-/work_items/3586274) State: opened | Updated: 2026-06-25 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Description: ## Problem/motivation Follow up to: #3586219 Pasting from UX review call on 17 June: 1. Collapse Use Cases and Scope columns Order pills in order shown on the edit page (e.g. Use Cases first) 2. Filters - Remove Use Cases filter - Change how Scope filter works - One dropdown with the scope names, e.g. Use Cases, Site Sections, etc (ordered by order on edit page) - Dropdown defaults to "All" - Second dropdown that shows the values from what you choose from first drop down - All shows all values like now - if you choose a specific scope name, then it will restrict to that one, e… --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/ai_context/-/merge_requests/175) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 2451 diff lines Description: Relates to #3586269. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [45] summariseModule:ai_dashboard:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI Dashboard (machine name: ai_dashboard) Reporting period: last 24h (2026-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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: Rob Loach (robloach)". 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 Dashboard

                                                                  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). ### [Improve AI Ecosystem](https://git.drupalcode.org/project/ai_dashboard/-/work_items/3585220) State: opened | Updated: 2026-06-26 | Author: Rob Loach (robloach) | Assigned: Rob Loach (robloach) | Labels: documentation Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !24 [Issue #3585220: Improve AI Ecosystem](https://git.drupalcode.org/project/ai_dashboard/-/merge_requests/24) | State: opened | Author: Rob Loach (robloach), 7674 diff lines Description: https://ai-dashboard-41c651.pages.drupalcode.org/ecosystem/ - [x] I find the Zensical CSS makes the font pretty small, and hard to see the "Filter". Could be tweaked. - [x] We could likely use the JSON manifest from this directly in the AI Dashboard module itself to allow users to browse modules from their own site - [ ] Need to add a cron rebuild process to grab the new modules from Drupal.org - [ ] The Category detection could use more tweaks. Uses the Name and Description, and when it can't find an appropriate one, it fallsback to Utility. - [ ] Add a column for whether or not the module i… ### [AI Recipe modal is missing the argument](https://git.drupalcode.org/project/ai_dashboard/-/work_items/3585216) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::bug, priority::normal, state::postponed, userInterface Description: >>> [!note] Migrated issue Reported by: [ro-no-lo](https://www.drupal.org/user/174449) Related to !18 >>> When I scroll to the "Features" Section I see 7 results: AI Assistent, AI Image Classification, AI SEO Optimizer, etc. When I click ANY "View Commands" button I see this: cd /Users/foobar/code/mypage.ai/Applications/barfoo/bin/php/php8.3.0/bin/php /Users/foobar/code/mypage.ai/core/scripts/drupal recipe When executing via vendor/bin/drush recipe or as noted in the modal I get Not enough arguments (missing: "path"). So any button is currently useless or incomplete. I have no idea what t… --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- (none) ======================================================================== ## [46] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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: Artem Dmitriiev (a.dmitriiev)". 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 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). ### [Batch embeddings for improved indexing performance](https://git.drupalcode.org/project/ai_search/-/work_items/3584024) State: opened | Updated: 2026-06-25 | Author: Artem Dmitriiev (a.dmitriiev) | Assigned: Sergiu Nagailic (Nikro) | Labels: AI Initiative Sprint, AI Product Development, category::feature, code 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. --- MERGE REQUESTS (24h) --- ### [Resolve "Batch embeddings for improved indexing performance"](https://git.drupalcode.org/project/ai_search/-/merge_requests/53) State: opened | Author: Artem Dmitriiev (a.dmitriiev) | Branch: 3584024-batch-embeddings-for-improved-indexing-performance | 732 diff lines Description: Closes #3584024 --- COMMITS (24h) --- (none) ======================================================================== ## [47] summariseModule:field_widget_actions:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Field Widget Actions (machine name: field_widget_actions) Reporting period: last 24h (2026-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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: Edward Zwart (ezeedub) [1], Scott Euser (scotteuser)". 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

                                                                      Field Widget Actions

                                                                      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). ### [Allow other contrib modules to mark their field widgets as childless so FWA actions still appear](https://git.drupalcode.org/project/field_widget_actions/-/work_items/3578202) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::feature, code, priority::normal, state::needsReview Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !26 [Resolve "Allow other contrib modules to mark their field widgets as childless so FWA actions still appear"](https://git.drupalcode.org/project/field_widget_actions/-/merge_requests/26) | State: opened | Author: Scott Euser (scotteuser), 221 diff lines Description: >>> [!note] Migrated issue Reported by: [scott_euser](https://www.drupal.org/user/3267594) >>> Problem/Motivation As discussed in #3563961 and #3546465, field widget type dependencies (like `chosen_select` or `tagify`) are currently hard-coded as 'childless' elements for Field Widget Action plugins. Childless elements need wrapping in a parent in order for the FWA button to show up. There does not seem to be a straightforward way to detect whether a field widget has a {{ children }} element being output. Steps to reproduce Attempt to enable a Field Widget Action on a custom or unlisted fi… ### [Add interactive refinement capability to Field Widget Actions](https://git.drupalcode.org/project/field_widget_actions/-/work_items/3547306) State: closed | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, category::feature, code Description: >>> [!note] Migrated issue Reported by: [ezeedub](https://www.drupal.org/user/633844) Related to !893 >>> Problem/Motivation Currently, Field Widget Actions provide excellent automation for content generation, but once an automator generates content, users have limited options for refinement without manually editing or re-running the entire automator process. This creates a gap between fully automated content generation and user-controlled refinement. Users often want to iteratively improve AI-generated content with additional context or refinement instructions (e.g., "make it shorter", "… ### [Support for checkboxes/radio buttons using Ajax JS Commands](https://git.drupalcode.org/project/field_widget_actions/-/work_items/3578204) State: opened | Updated: 2026-06-25 | Author: drupalbot | Assigned: unassigned | Labels: category::feature, code, priority::normal, state::needsReview Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !25 [Resolve "Support for checkboxes/radio buttons using Ajax JS Commands"](https://git.drupalcode.org/project/field_widget_actions/-/merge_requests/25) | State: opened | Author: Scott Euser (scotteuser), 433 diff lines Description: >>> [!note] Migrated issue Reported by: [scott_euser](https://www.drupal.org/user/3267594) >>> Problem/Motivation Support for Checkboxes and Radios was deferred from #3563961: Support select type widgets (select, tagify, etc) using ajax JS commands because they require a different field widget setup. Steps to reproduce Attempt to use Field Widget Actions that need JS commands to fill checkbox or radio input fields. Proposed resolution Implement FWA support specifically for Checkboxes/Radios widgets. Remaining tasks Create MR and add test coverage. User interface changes N/A API changes N/A… --- MERGE REQUESTS (24h) --- ### [Issue #3547306: Add interactive refinement capability to Field Widget Actions](https://git.drupalcode.org/project/field_widget_actions/-/merge_requests/19) State: merged 2026-06-25 | Author: Edward Zwart (ezeedub) | Branch: 3547306-interactive-refinement | 3775 diff lines Description: Adds opt-in **interactive refinement** to Field Widget Actions: when enabled, an action button opens a modal that shows the generated content, lets the user iteratively refine it with follow-up prompts, and then inserts the result into the field. Refinement is off by default — existing actions are unaffected. ## Approach Built on the server-side **Form API** modal (`FieldWidgetFormActionBase`), per maintainer feedback — no custom modal JavaScript or CSS. The generated content and the refinement prompt are ordinary form elements; clicking **Refine** rebuilds the modal server-side (the same wa… --- COMMITS (24h) --- - [69acdd60](https://git.drupalcode.org/project/field_widget_actions/-/commit/69acdd60d2250e309fdc1176d081d9e17a75af82) Issue #3547306: Add interactive refinement capability to Field Widget Actions — Edward Zwart (2026-06-25T09:58:36.000+00:00) ======================================================================== ## [48] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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 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). ### [Automated Drupal 12 compatibility fixes for ai_translate 2.0.x-dev](https://git.drupalcode.org/project/ai_translate/-/work_items/3585524) State: opened | Updated: 2026-06-25 | 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… --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/ai_translate/-/merge_requests/23) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 409 diff lines Description: Relates to #3585524. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [49] summariseModule:ai_search_block:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI powered Search Block (machine name: ai_search_block) Reporting period: last 24h (2026-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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 powered Search Block

                                                                          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_search_block/-/merge_requests/43) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 753 diff lines Description: Relates to #3606122. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [50] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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

                                                                            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). ### [Automated Drupal 12 compatibility fixes for flowdrop 1.x-dev](https://git.drupalcode.org/project/flowdrop/-/work_items/3592077) State: opened | Updated: 2026-06-25 | 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… --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/flowdrop/-/merge_requests/11) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 4588 diff lines Description: Relates to #3592077. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [51] summariseModule:flowdrop_ui_agents:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: FlowDrop UI Agents (machine name: flowdrop_ui_agents) Reporting period: last 24h (2026-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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

                                                                              FlowDrop UI 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 flowdrop_ui_agents 1.0.x-dev](https://git.drupalcode.org/project/flowdrop_ui_agents/-/work_items/3584958) State: opened | Updated: 2026-06-25 | 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… --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/flowdrop_ui_agents/-/merge_requests/27) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 232 diff lines Description: Relates to #3584958. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [52] 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-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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-06-25 | 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… --- 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 | 41 diff lines Description: Relates to #3590037. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [53] summariseModule:ai_related_content:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI Related Content (machine name: ai_related_content) Reporting period: last 24h (2026-06-25T05:00:05+00:00 to 2026-06-26T05:00:05+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), Scott Euser (scotteuser) [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

                                                                                  AI Related Content

                                                                                  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_related_content 2.0.x-dev](https://git.drupalcode.org/project/ai_related_content/-/work_items/3576575) State: opened | Updated: 2026-06-25 | 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… ### [Pinecone: fix `getVectorFromNode()` returning no results](https://git.drupalcode.org/project/ai_related_content/-/work_items/3576574) State: closed | Updated: 2026-06-25 | Author: Scott Euser (scotteuser) | Assigned: unassigned | Labels: category::bug, code, state::accepted Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !17 [Resolve "Pinecone: fix `getVectorFromNode()` returning no results" 2x](https://git.drupalcode.org/project/ai_related_content/-/merge_requests/17) | State: merged 2026-06-25 | Author: Scott Euser (scotteuser), 72 diff lines Description: **File:** `src/Plugin/views/filter/AIRelatedContentNodeFilter.php` **Problem:** Two bugs in `getVectorFromNode()` cause the related content view to return zero results when using Pinecone: 1. `addCondition('drupal_entity_id', ...)` is silently ignored by Pinecone because `drupal_entity_id` is not a Search API index field. Without a working filter, the query returns random semantic matches for "Title" — none of which pass the ID check — so `getVectorFromNode()` always returns `null` and the query is aborted. 2. The ID check used strict equality (`!==`), which would also fail for chunk-suffix… --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/ai_related_content/-/merge_requests/19) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 239 diff lines Description: Relates to #3576575. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. ### [Resolve "Pinecone: fix `getVectorFromNode()` returning no results" 1x](https://git.drupalcode.org/project/ai_related_content/-/merge_requests/18) State: merged 2026-06-25 | Author: Scott Euser (scotteuser) | Branch: 3576574-pinecone-fix | 47 diff lines Description: Closes #3576574 --- COMMITS (24h) --- - [7c135f78](https://git.drupalcode.org/project/ai_related_content/-/commit/7c135f78817c00faf2c8143dd2ae4f8207db7cfc) bug: #3576574 Pinecone: fix `getVectorFromNode()` returning no results — Scott Euser (2026-06-25T10:48:57.000+00:00) ======================================================================== ## [54] 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] Uninstalling ai_ckeditor leaves stale toolbar items in editor.editor.* configuration (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586570 [2] Config action to verify if any vector database is there and it is setup (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586517 [3] Batch embeddings for improved indexing performance (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3568648 [4] Improve ai_ckeditor UX when no provider modules are installed (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586549 [5] Add "throttle API requests" control? (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3561243 [6] [Discuss] Shift focus from provider plugins to operation type plugins in AI Core (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3559800 [7] Plugin shouldn't show any fields if no text is selected (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3557016 [8] Tools UI overview page does not load (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3579979 [9] Add a setup-guardrails agent skill to configure guardrails, guardrail sets, and global guardrails (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586561 [10] Move out AI Content Suggestions (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3552885 [11] AI CKEditor: Hardcoded “summarize” message shown for all plugins when no text is selected (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3575346 [12] [Discuss] Consider adding Agents.md (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3573186 [13] Drupal AI Contribution meeting 2026-02-09 (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3570259 [14] Create agents as Tools (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3556380 [15] Implement Process System Integration for Automators (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3493291 [16] [Discuss] Allow usage of Tool API in Agents (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3556140 [17] ai_ckeditor: Add option to show or hide the "AI Writer" status information (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586569 [18] Plan: Add cancel button to AI Chatbot (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3499583 [19] Use core Json::encode() and Json::decode everywhere possible (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3480683 [20] Move Prompt Library menu link under AI Infrastructure instead of Vector Database Configuration (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586499 [21] Prompt Library menu item missing due to incorrect parent (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3585596 [22] [Discuss] Core support for browser providers (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3577202 [23] Research better practices for recipes (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3577175 [24] Improvement suggestions for ai_automators docs (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3572751 [25] Create an HTML to Markdown API and service (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3574246 [26] Support the `ai_json_schema` element inside off-canvas dialogs (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586536 [27] Provide proper support for "unconfigured" AI provider state (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3572645 [28] Add an AI reranking processor for Search API (owned by the AI module) (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586543 [29] Clean up ai_observability settings form (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3574499 [30] [Research] Mechanism to force deprecated bundled submodules onto their contrib version (start with ai_validations) (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586538 [31] AI CKEditor regression in 1.5.x? (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586567 [32] Unable to override the 'Calling agents' / 'Contacting agents' text (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586389 [33] Glossary for the Drupal AI initiative (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3577844 [34] Add info about initiative and release differences to project page (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586568 [35] Generalize behaviour of FWA with Automators (AI Core v2) (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586515 [36] Issue when creating content and click on AI Assistant on Ckeditor (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586545 [37] Automated Drupal 12 compatibility fixes for ai 2.0.x-dev (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586525 [38] Fiber branch in OpenAiBasedProviderClientBase::chat() drops token usage from the reconstructed ChatOutput (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586522 [39] Allow vector database providers to opt in as the default VDB when none is set (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586500 [40] Use ai_provider_configuration form element in RestrictToTopic configuration form (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586472 [41] Issue #3586517: Check if any Vdb provider is setup (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1660 [42] feat(ai_ckeditor): warn users when no AI provider is installed in the CKEditor settings tab (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1701 [43] Issue #3568648: Batch embeddings as a first-class operation type (follow-up to !1704) (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1726 [44] task: #3586561 Add a setup-guardrails agent skill to configure guardrails,... (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1724 [45] Remove ai_content_suggestions module for ai core (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1042 [46] Issue #3585596: Move Prompt Library under AI Infrastrcture (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1522 [47] Issue #3585596: Move Prompt Library under AI Infrastrcture (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1521 [48] Issue #3585596: Move Prompt Library under AI Infrastrcture (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1523 [49] docs: #3572751 Add docs for the Field widget Actions automator worker (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1293 [50] Adding a new point about Automator Worker (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1187 [51] Adding a new point about Automator Worker (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1201 [52] feat: #3586538 Add hook_requirements and hook_update_10001 for ai_validations deprecation (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1725 [53] Issue #3586389: Add agent delegation message setting (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1539 [54] Draft: Fix lb asymetric translation (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1687 [55] Issue #3586522: Keep token usage in the chat() Fiber branch (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1723 [56] Issue #3586522: Keep token usage in the chat() Fiber branch (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1722 [57] Issue #3586522: Keep token usage in the chat() Fiber branch (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1719 [58] Issue #3586522: Keep token usage in the chat() Fiber branch (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1721 [59] Issue #3586522: Keep token usage in the chat() Fiber branch (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1720 [60] Issue #3586522: Keep token usage in the chat() Fiber branch (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1670 [61] Cherry-pick changes from #3586500 (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1718 [62] [META] 2026 Outside-in / Innovation Roadmap (draft) (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3576908 [63] Add standardized GitLab issue templates for initiative work (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3586461 [64] 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 [65] Automated Project Update Bot fixes (ai_integration_eca, MR) — https://git.drupalcode.org/project/ai_integration_eca/-/merge_requests/13 [66] add support for batch embeddings (ai_provider_openai, MR) — https://git.drupalcode.org/project/ai_provider_openai/-/merge_requests/59 [67] Automated Project Update Bot fixes (ai_provider_openai, MR) — https://git.drupalcode.org/project/ai_provider_openai/-/merge_requests/77 [68] pgsql ext dependency missing in composer.json (ai_provider_amazeeio, Issue) — https://git.drupalcode.org/project/ai_provider_amazeeio/-/work_items/3586235 [69] Automated Drupal 12 compatibility fixes for ai_provider_amazeeio 2.0.x-dev (ai_provider_amazeeio, Issue) — https://git.drupalcode.org/project/ai_provider_amazeeio/-/work_items/3586234 [70] fix(#3586231): check that key identifiers are non-empty strings before loading keys (ai_provider_amazeeio, MR) — https://git.drupalcode.org/project/ai_provider_amazeeio/-/merge_requests/74 [71] chore: require ext-pgsql (ai_provider_amazeeio, MR) — https://git.drupalcode.org/project/ai_provider_amazeeio/-/merge_requests/76 [72] Automated Project Update Bot fixes (ai_provider_amazeeio, MR) — https://git.drupalcode.org/project/ai_provider_amazeeio/-/merge_requests/77 [73] Automated Drupal 12 compatibility fixes for gemini_provider 1.x-dev (gemini_provider, Issue) — https://git.drupalcode.org/project/gemini_provider/-/work_items/3589187 [74] Automated Project Update Bot fixes (gemini_provider, MR) — https://git.drupalcode.org/project/gemini_provider/-/merge_requests/41 [75] add support for batching on indexing operations (ai_vdb_provider_milvus, MR) — https://git.drupalcode.org/project/ai_vdb_provider_milvus/-/merge_requests/44 [76] Automated Project Update Bot fixes (ai_vdb_provider_milvus, MR) — https://git.drupalcode.org/project/ai_vdb_provider_milvus/-/merge_requests/50 [77] Views agent: style/row and filters/filter_groups must be overridden as pairs on non-default displays (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3582782 [78] UpdateViewPlugins: display option updates on non-default displays do not override defaults inheritance (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3582781 [79] Fix streaming (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3577520 [80] Add limits on how often a tool can run (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3547995 [81] 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 [82] Exceptions in tool execute break the UI for the user (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3537123 [83] Automated Project Update Bot fixes (ai_agents, MR) — https://git.drupalcode.org/project/ai_agents/-/merge_requests/282 [84] tool:run masks the failure message: getOutputValues() throws on unset outputs of a failed tool (tool, Issue) — https://git.drupalcode.org/project/tool/-/work_items/3582942 [85] Dependency Dashboard (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591657 [86] Canvas icon / logo for Project Browser and project page (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3545468 [87] Component inputs order is database-backend-dependent: fix inputs key order assertions in tests and enforce it via PHPStan when possible (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591726 [88] Symmetric translation: component instance version updates must propagate to all translations (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591596 [89] Deduplicate the shared JavaScript component test fixture and prop-mutation helpers across the translation-propagation and component-instance-updater kernel tests (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591723 [90] Put conflict detection behind a dev mode flag (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591725 [91] Avoid registering draft asset-library JS URLs to prevent locale's js_alter from treating them as local files (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591719 [92] Draft asset library JS asset registered as a file triggers file_get_contents() warning in locale's JS scan (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591729 [93] Strengthen test coverage for multi-translation multi-component instance automatic version updating (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591730 [94] Flat named component validation in @drupal-canvas/eslint-config misses sibling entrypoints (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591717 [95] Canvas AI: canvas_ai_post_update_0003 strips the orchestrator agent UUID via setData() (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591660 [96] Use notifications to inform users about the detected conflicts (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591715 [97] Boolean props auto-enable when another prop is changed in the Canvas form (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591716 [98] Automated Drupal 12 compatibility fixes for canvas 1.x-dev (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591603 [99] Canvas AI: Component context required props missing required flag (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591655 [100] Canvas AI: Remove hardcoded component source IDs (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591652 [101] Canvas AI: An unexpected error has occurred while rendering preview (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3556922 [102] Refactor away the brittle`PageRegion::forAutoSaveData()` (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591728 [103] Add `canvas-validate-component-trees` Drupal CLI command to check health of Canvas component trees: validate every Canvas (content|config) entity, validate every content entity component tree field revision+translation (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591667 [104] Deleting optional props from an SDC/code component causes validation errors in config-defined component instances: regression for monolingual sites, bug for multilingual sites (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591727 [105] Symmetrically translatable config-defined component trees, STEP 2: change config schema type for `inputs` to allow translating via core's Config Translation UI for ContentTemplates & PageRegions (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3582478 [106] Changing Metadata Clears Canvas AI Prompt Text (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3558257 [107] Canvas AI: Expose Props of Blocks to the Agent (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3569120 [108] Canvas AI: UI/Functional update. Lock the canvas during a build and add a long-running AI-tasks UI element to the chat (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591724 [109] chore(deps): update dependency cspell to v10 (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1273 [110] chore(deps): update mysql docker tag to v8.3 (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1272 [111] fix(deps): update npm minor and patch (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1238 [112] Issue #3591726: Compare component inputs order-independently in tests and enforce it via PHPStan (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1291 [113] feat: #3591596 Apply component instance updater to all component trees: content/config non-default translations; introduce `StagedLanguageConfigOverride` to treat both similarly (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1271 [114] Put conflict detection behind feature flag (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1290 [115] fix(autoSave, internalHttpApi): #3591729 Register draft asset library JS as external so locale's JS scan skips it (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1293 [116] feat(CLI Tool): Clean up the output of all CLI commands (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1280 [117] #3591654 "Update the delete link generation in ApiLayoutController.php to use canvas.api.config.translation.delete in the template context" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1234 [118] fix(CLI Tool): #3591717 Flat named component validation in @drupal-canvas/eslint-config misses sibling entrypoints (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1284 [119] Issue #3591660: Preserve agent UUID in canvas_ai post_update 0003 and repair affected sites (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1230 [120] fix(autoSave, internalHttpApi): #3591729 Register draft asset library JS as external so locale's JS scan skips it (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1292 [121] feat(Conflict detection): #3591601 "Conflict resolution via API call and layout endpoint support for published entities" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1194 [122] feat: #3518272 support all entity types with configurable displays for content templates (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/791 [123] Issue #3591652: Replace hardcoded component source plugin IDs with SOURCE_PLUGIN_ID constants (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1255 [124] #3591714: Resolve "Translating unpublished page crashes canvas" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1282 [125] Issues/3569120: Canvas AI: Expose Props of Blocks to the Agent. (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/498 [126] Issues/Canvas AI: An unexpected error has occurred while rendering preview (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/813 [127] feat(Conflict detection): #3587526 "Detect conflicts during publishing of changes to Page entity" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1193 [128] Draft: feat(Conflict detection): #3591668 "Text-based Page entity representation via Canvas API" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1241 [129] Fix Canvas AI prompt reset on metadata changes (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/530 [130] Add full view layout for context item canonical and revision pages based on new design (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586220 [131] 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 [132] Question about "Subcontext type = Conditional - included based on relevance" (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586149 [133] Fix PHPStan failures in CCC (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586238 [134] No public API for building scope subscription forms; consumers must depend on the internal scope manager (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586287 [135] Add Configure Link in Modules Page (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586285 [136] Copy and layout updates on context item scope form (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586284 [137] `hook_ai_context_scope_values_alter()` is ignored by scope forms and labels (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586286 [138] Fix phpstan error in AiContextSubcontextToggleTrait (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586259 [139] CCC UX sync 27 May 2026 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586236 [140] Improve conditional subcontext disabled-state behavior and admin UX (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586292 [141] Error when running database updates from beta2 to latest -dev (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586290 [142] [Feature] Add ExternalContextProviderInterface and ContextQueryInterface to support RAG/vector store integrations (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586289 [143] Add #[RunTestsInSeparateProcesses] attribute to all kernel test classes (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586280 [144] Introduce explicit scope types and item inclusion modes; clarify selection in UI and docs (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586281 [145] Promote Document Loader: Context Importer from experimental to stable (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586282 [146] Update project page to make it more clear that CCC is for agents (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586278 [147] CCC beta / pre-rc1 community testing (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586234 [148] Test AI Best Practices skills on AI Context codebase (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586258 [149] Rename entity bundle and target entity scope plugins for better DX (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586276 [150] Allow subcontext scope to override parent scope (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586218 [151] [Discuss] Moderation status of subcontext vs parent context items (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586264 [152] Finalize Context Importer naming and review Extensions page UI/UX (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586283 [153] Possible UX improvements on new context listing page (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586274 [154] Automated Project Update Bot fixes (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/175 [155] Improve AI Ecosystem (ai_dashboard, Issue) — https://git.drupalcode.org/project/ai_dashboard/-/work_items/3585220 [156] AI Recipe modal is missing the argument (ai_dashboard, Issue) — https://git.drupalcode.org/project/ai_dashboard/-/work_items/3585216 [157] Issue #3585220: Improve AI Ecosystem (ai_dashboard, MR) — https://git.drupalcode.org/project/ai_dashboard/-/merge_requests/24 [158] Batch embeddings for improved indexing performance (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584024 [159] Resolve "Batch embeddings for improved indexing performance" (ai_search, MR) — https://git.drupalcode.org/project/ai_search/-/merge_requests/53 [160] Allow other contrib modules to mark their field widgets as childless so FWA actions still appear (field_widget_actions, Issue) — https://git.drupalcode.org/project/field_widget_actions/-/work_items/3578202 [161] Add interactive refinement capability to Field Widget Actions (field_widget_actions, Issue) — https://git.drupalcode.org/project/field_widget_actions/-/work_items/3547306 [162] Support for checkboxes/radio buttons using Ajax JS Commands (field_widget_actions, Issue) — https://git.drupalcode.org/project/field_widget_actions/-/work_items/3578204 [163] Resolve "Allow other contrib modules to mark their field widgets as childless so FWA actions still appear" (field_widget_actions, MR) — https://git.drupalcode.org/project/field_widget_actions/-/merge_requests/26 [164] Resolve "Support for checkboxes/radio buttons using Ajax JS Commands" (field_widget_actions, MR) — https://git.drupalcode.org/project/field_widget_actions/-/merge_requests/25 [165] Issue #3547306: Add interactive refinement capability to Field Widget Actions (field_widget_actions, MR) — https://git.drupalcode.org/project/field_widget_actions/-/merge_requests/19 [166] Automated Drupal 12 compatibility fixes for ai_translate 2.0.x-dev (ai_translate, Issue) — https://git.drupalcode.org/project/ai_translate/-/work_items/3585524 [167] Automated Project Update Bot fixes (ai_translate, MR) — https://git.drupalcode.org/project/ai_translate/-/merge_requests/23 [168] Automated Project Update Bot fixes (ai_search_block, MR) — https://git.drupalcode.org/project/ai_search_block/-/merge_requests/43 [169] Automated Drupal 12 compatibility fixes for flowdrop 1.x-dev (flowdrop, Issue) — https://git.drupalcode.org/project/flowdrop/-/work_items/3592077 [170] Automated Project Update Bot fixes (flowdrop, MR) — https://git.drupalcode.org/project/flowdrop/-/merge_requests/11 [171] Automated Drupal 12 compatibility fixes for flowdrop_ui_agents 1.0.x-dev (flowdrop_ui_agents, Issue) — https://git.drupalcode.org/project/flowdrop_ui_agents/-/work_items/3584958 [172] Automated Project Update Bot fixes (flowdrop_ui_agents, MR) — https://git.drupalcode.org/project/flowdrop_ui_agents/-/merge_requests/27 [173] Automated Drupal 12 compatibility fixes for agui 1.0.x-dev (agui, Issue) — https://git.drupalcode.org/project/agui/-/work_items/3590037 [174] Automated Project Update Bot fixes (agui, MR) — https://git.drupalcode.org/project/agui/-/merge_requests/30 [175] Automated Drupal 12 compatibility fixes for ai_related_content 2.0.x-dev (ai_related_content, Issue) — https://git.drupalcode.org/project/ai_related_content/-/work_items/3576575 [176] Pinecone: fix `getVectorFromNode()` returning no results (ai_related_content, Issue) — https://git.drupalcode.org/project/ai_related_content/-/work_items/3576574 [177] Automated Project Update Bot fixes (ai_related_content, MR) — https://git.drupalcode.org/project/ai_related_content/-/merge_requests/19 [178] Resolve "Pinecone: fix `getVectorFromNode()` returning no results" 2x (ai_related_content, MR) — https://git.drupalcode.org/project/ai_related_content/-/merge_requests/17 [179] Resolve "Pinecone: fix `getVectorFromNode()` returning no results" 1x (ai_related_content, MR) — https://git.drupalcode.org/project/ai_related_content/-/merge_requests/18 --- MODULE SUMMARIES ---

                                                                                      AI (Artificial Intelligence)

                                                                                      The AI module made progress on infrastructure improvements, bug fixes, and developer experience during the reporting period. Several foundational changes were merged that strengthen platform capabilities and correct issues affecting production use.

                                                                                      A critical fix was merged to preserve token usage data in streaming chat responses. Previously, when chat operations ran inside PHP Fibers, token usage information was lost during output reconstruction, preventing accurate cost tracking and observability. This issue now affects fewer deployments.

                                                                                      The AI Content Suggestions module was separated into its own standalone project, streamlining the core AI module and allowing independent development cycles. The Prompt Library menu item was relocated under AI Infrastructure where it belongs, improving discoverability for site builders. A new capability allowing vector database providers to opt in as the default was merged, matching behaviour already available to AI providers and reducing manual configuration.

                                                                                      Work continues on several front-end improvements: clearer user warnings when no AI provider is installed for CKEditor, and configurable agent delegation messages to avoid confusing terminology in chatbot interfaces. A batch embeddings operation type is under active development to accelerate indexing performance for vector databases.

                                                                                      How can I help on this project?

                                                                                      • Prioritise user-experience work flagged as "Needs UX review" — clearer provider warnings and hardcoded message fixes improve adoption but need design input.
                                                                                      • Support decisions on the deprecation and migration strategy for bundled submodules moving to standalone projects; this affects upgrade paths for production sites.

                                                                                      Contributors: Abhisek Mazumdar (abhisekmazumdar), Ahmad Khalil (ahmad-khalil-imagex), Ann Mary Sruthy (annmarysruthy), Arnaud Willame (arwillame), Artem Dmitriiev (a.dmitriiev), Dimitar Rupov (mrupal), Eric Homanchuk (erichomanchuk), Jérôme Tchania (codeitwisely), m4olivei, Ricardo Castañeda (cadence96), Sujal Kshatri (sujal_31), Wolfgang Ziegler (fago)

                                                                                      ---

                                                                                      Drupal AI Initiative

                                                                                      The AI Initiative is focusing on making Drupal ready for external AI agents and automated systems while maintaining control and safety. The 2026 roadmap emphasizes building reliable foundations: identity management, permissions enforcement, schema validation, and audit trails that let organizations safely allow AI agents to perform real work within defined boundaries.

                                                                                      Over the past day, standardized issue templates for initiative work were finalized and closed. These templates will help contributors across all four initiative tracks (AI Core, Products, Marketing, and UX) create consistently structured issues for coordination, research, decisions, meetings, and community activities. This organizational infrastructure should accelerate collaboration as the contributor base grows.

                                                                                      The 2026 Outside-in / Innovation Roadmap remains in active planning. The strategy prioritizes making Drupal governable and auditable when external AI systems interact with it, rather than requiring organizations to use only Drupal-native AI tools.

                                                                                      How can I help on this project?

                                                                                      • Ensure sufficient resourcing is allocated to the identity and permissions work, which forms the security foundation for agent integration.
                                                                                      • Support cross-functional alignment between the four initiative tracks to maintain coherent delivery of the roadmap.
                                                                                      ---

                                                                                      AI Integration - ECA

                                                                                      Work continued on preparing this module for Drupal 12 compatibility. An automated process identified code that uses outdated programming interfaces that will no longer be supported in the next major version of Drupal. A merge request containing compatibility fixes was prepared and is now ready for review as part of ongoing Drupal 12 compatibility work. This type of maintenance is routine for modules as the platform evolves, ensuring the integration between AI capabilities and event-driven automation remains functional when Drupal's core framework is upgraded. No commits were merged during this period, and the compatibility updates await further assessment.

                                                                                      How can I help on this project?

                                                                                      • Prioritize technical review capacity to assess and approve the pending Drupal 12 compatibility changes, ensuring the module remains viable as the platform evolves.
                                                                                      • Clarify the strategic timeline for Drupal 12 adoption to help determine urgency and resource allocation for this compatibility work.
                                                                                      Contributors: project update bot (Project-Update-Bot) ---

                                                                                      OpenAI Provider

                                                                                      Two development efforts are underway to improve the module's capabilities and maintenance. A new merge request to add support for batch embeddings has been opened, which would enable the system to process multiple embedding requests together rather than one at a time. This can improve efficiency when working with larger volumes of content that needs to be analyzed or processed by AI services.

                                                                                      Additionally, an automated project update has been prepared to keep the module aligned with current Drupal project standards and tooling requirements.

                                                                                      No commits were merged during this period, indicating these contributions are still under review. Both items represent routine development activity consistent with an evolving module.

                                                                                      How can I help on this project?

                                                                                      • Ensure technical reviewers have capacity to evaluate the pending batch embeddings feature, which could improve performance for higher-volume use cases.
                                                                                      • Confirm whether batch processing capabilities align with planned business applications of AI-powered content features.

                                                                                      Contributors: Paul Sheldrake (paulsheldrake), project update bot (Project-Update-Bot)

                                                                                      ---

                                                                                      amazee.ai Private AI Provider

                                                                                      This module provides integration with amazee.ai's private AI services. Over the past 24 hours, work continued on stabilising the module and preparing for future platform compatibility.

                                                                                      Two fixes were merged to address runtime issues. A missing dependency on the PostgreSQL extension was added to prevent errors when connecting to the vector database. Separately, validation was added to ensure key identifiers are properly checked before use, preventing configuration errors from causing failures.

                                                                                      An automated compatibility assessment for Drupal 12 was also initiated. A merge request with compatibility updates has been prepared and is awaiting review. This work ensures the module will remain functional as the Drupal platform evolves.

                                                                                      The module is progressing steadily with fixes that improve reliability for organisations using private AI capabilities in their Drupal environments.

                                                                                      How can I help on this project?

                                                                                      • Prioritise review and approval of the pending Drupal 12 compatibility changes to ensure the module remains supported on future platform versions.
                                                                                      • Consider dedicating testing resources to validate the module's behaviour with PostgreSQL-based vector database configurations in production-like environments.

                                                                                      Contributors: Dan Lemon (dan2k3k4), project update bot (Project-Update-Bot)

                                                                                      ---

                                                                                      Gemini Provider

                                                                                      The Gemini Provider module saw preparatory work for future platform compatibility this period. An automated issue tracking Drupal 12 compatibility was opened, along with a corresponding merge request containing automated fixes. This work ensures the module will remain functional as the Drupal platform evolves, protecting the investment made in this integration.

                                                                                      No commits were merged during this period, indicating this compatibility work is still under review. The module appears to be in active maintenance with automation helping identify necessary updates ahead of time.

                                                                                      How can I help on this project?

                                                                                      • Ensure development resources are available to review and validate the automated compatibility changes, so the module stays current with platform requirements.
                                                                                      • Clarify the strategic roadmap for this module to help prioritize compatibility work against other feature development needs.

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

                                                                                      ---

                                                                                      Milvus VDB Provider

                                                                                      During this reporting period, two new development efforts were initiated to improve the module's capabilities and quality.

                                                                                      Work began on add support for batching on indexing operations, which will enable the system to process multiple indexing tasks together rather than one at a time. This should improve performance when handling large volumes of content, reducing the time needed to make information searchable.

                                                                                      Additionally, Automated Project Update Bot fixes were prepared to maintain code quality standards and keep the module aligned with Drupal project requirements.

                                                                                      No issues were updated and no code was merged during this period, indicating that development work is progressing through the review stage. Both efforts are in progress and represent incremental improvements to system performance and maintainability.

                                                                                      How can I help on this project?

                                                                                      • Ensure dedicated review resources are available to assess and merge pending development work, preventing bottlenecks in the delivery pipeline.
                                                                                      • Confirm that performance improvement initiatives like batching align with broader organizational priorities for scaling content operations.

                                                                                      Contributors: Artem Dmitriiev (a.dmitriiev), project update bot (Project-Update-Bot)

                                                                                      ---

                                                                                      AI Agents

                                                                                      The AI Agents module saw maintenance and quality work this period. Several longstanding issues with the Views agent were identified, where display configuration changes requested by users were not being correctly applied to non-default displays due to how the system handles inherited settings and coupled configuration pairs.

                                                                                      A merge request was opened to bring the module into compatibility with Drupal 12, addressing deprecated code patterns. This is routine preparation work as the platform evolves.

                                                                                      No code was merged during this period. The module has six open issues covering functionality gaps and error handling improvements, including limits on tool execution frequency and better user feedback when tools encounter errors. These are typical refinements for a module in active development.

                                                                                      How can I help on this project?

                                                                                      • Prioritize the Views agent display override bugs if they affect user-facing functionality you need.
                                                                                      • Consider allocating review time to evaluate the Drupal 12 compatibility changes and the streaming fix to move them toward merge.

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

                                                                                      ---

                                                                                      Tool API

                                                                                      The Tool API module made progress on error handling this period. A defect preventing useful error messages from being displayed was resolved. Previously, when a tool operation failed, users would see a technical exception rather than the intended failure message explaining what went wrong. This issue has been closed and marked as fixed, meaning administrators and content teams using tools built on this module will now receive clearer feedback when operations do not complete successfully, reducing time spent troubleshooting.

                                                                                      This represents continued refinement of the module's core functionality, improving the day-to-day experience for end users who rely on tool-based workflows.

                                                                                      How can I help on this project?

                                                                                      • Assess whether additional testing resources are needed to validate error handling improvements across different tool implementations before wider deployment.
                                                                                      • Determine if documentation updates are required to communicate these user-facing improvements to site administrators and support teams.
                                                                                      ---

                                                                                      Drupal Canvas

                                                                                      Over the past 24 hours, Canvas delivered significant progress on translation infrastructure and data integrity. A critical feature enabling automatic version updates for component instances across all translations was completed. Previously, when a component's definition changed, only the actively edited language received the update; other translations were left with mismatched version markers. The system now applies updates to every language variant of a content or configuration entity, ensuring all translations stay synchronized with the latest component versions.

                                                                                      Work continued on conflict detection tooling, with the feature now placed behind a development flag to prevent interference with the translation rollout. A related fix resolved a PHP warning on multilingual sites where draft asset libraries were incorrectly scanned for translation strings. The project also addressed a data-consistency issue where test assertions failed on certain database backends due to differing JSON key ordering, and resolved a problem where AI-related configuration updates inadvertently stripped critical metadata.

                                                                                      Several smaller quality-of-life improvements were merged, including fixes to component validation in the CLI tool and removal of hardcoded identifiers in AI-related update hooks. Multiple open issues remain in active development, covering conflict-resolution UI, AI prompt stability, and validation tooling for checking component tree health at scale.

                                                                                      How can I help on this project?

                                                                                      • Prioritize scoping and stakeholder review for the CLI command validating component tree health across all entities and translations, which will help prevent costly data integrity issues in production deployments.
                                                                                      • Allocate developer time to address open validation errors when optional component properties are removed, particularly for config-defined instances, to prevent regressions for sites upgrading to multilingual support.

                                                                                      Contributors: **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Abhishek Dhariwal (adaptative) [1], Adam G-H (phenaproxima), AKHIL BABU (AkhilBabu), Bálint Kléri (balintbrews) [1], Christian López Espínola (penyaskito) [2], Feliksas Mazeikis (f.mazeikis) [1], Kunal Sachdev (kunal.sachdev), Matt Glaman (mglaman) [1], scott falconer (scottfalconer), Wim Leers (wimleers) [1]

                                                                                      ---

                                                                                      Context Control Center (CCC)

                                                                                      This period saw substantial progress on user interface improvements and code quality across the Context Control Center. Multiple efforts to refine how site builders understand and configure context selection moved forward, addressing feedback from beta testing.

                                                                                      Four issues were closed, focusing on polish and developer experience. Work included Copy and layout updates on context item scope form to simplify form presentation, Add Configure Link in Modules Page for easier navigation, and Fix PHPStan failures in CCC to resolve code quality issues. Two bugs blocking stable release were resolved: hook_ai_context_scope_values_alter() is ignored by scope forms and labels now properly enables third-party modules to extend scope options, and No public API for building scope subscription forms established a supported integration path for other modules needing scope UI components.

                                                                                      Several issues progressed toward release candidate readiness. Discussions continued on improving how conditional subcontext behavior is presented to editors, clarifying scope selection concepts, and stabilizing the Document Loader integration. Automated compatibility work for Drupal 12 was initiated.

                                                                                      How can I help on this project?

                                                                                      Support the community testing initiative to gather feedback before the first release candidate. Consider allocating resources to finalize documentation and naming conventions across the scope and subcontext features, which will reduce onboarding friction for site builders.

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

                                                                                      ---

                                                                                      AI Dashboard

                                                                                      Activity this period focused on documentation improvements and issue management. Work continued on the Improve AI Ecosystem initiative, which aims to help users discover and understand available AI modules for Drupal. The ecosystem browser is being refined to make it easier to navigate the growing landscape of AI integrations, with improvements to visual presentation and filtering capabilities now complete. Plans include automating content updates and enhancing how modules are categorized for easier discovery.

                                                                                      A usability issue affecting the recipe installation feature was closed. The AI Recipe modal is missing the path argument issue, which prevented users from successfully running installation commands shown in the interface, has been postponed. This was causing confusion when users attempted to install pre-configured AI features from the dashboard.

                                                                                      How can I help on this project?

                                                                                      Consider prioritizing the postponed recipe modal issue, as it currently blocks a key self-service installation feature. If the ecosystem browser shows strategic value, advocate for its integration directly into the dashboard interface to improve module discoverability for site administrators.

                                                                                      Contributors: Rob Loach (robloach)

                                                                                      ---

                                                                                      AI Search

                                                                                      Work is underway to improve how the AI Search module handles content indexing at scale. A solution for batch embeddings for improved indexing performance has been prepared and is now under review. This capability processes content in batches rather than one item at a time, which will reduce server load and speed up the indexing process when large volumes of content need to be analyzed. This is particularly important for sites with extensive content libraries or those performing initial setup.

                                                                                      The work is part of a broader consolidation effort, bringing functionality previously developed elsewhere into the AI Search module to ensure it remains current and supported going forward.

                                                                                      How can I help on this project?

                                                                                      • Ensure the team has access to testing environments with realistic content volumes to validate performance improvements before release.
                                                                                      • Clarify deployment timelines and communicate expectations to stakeholders waiting for indexing performance enhancements.

                                                                                      Contributors: Artem Dmitriiev (a.dmitriiev)

                                                                                      ---

                                                                                      Field Widget Actions

                                                                                      Field Widget Actions now supports interactive refinement of AI-generated content. A new interactive refinement capability was merged, allowing users to review generated content in a modal dialog and improve it with follow-up instructions before inserting it into their fields. For example, users can ask the system to make content shorter or adjust its tone without starting over. This capability is optional and turned off by default, so existing workflows remain unchanged. The feature gives content teams more control over AI outputs and reduces the need for manual post-editing.

                                                                                      Two new feature requests are under review. Work is progressing on allowing other modules to mark their field widgets as compatible with Field Widget Actions, which will expand the range of form controls that can benefit from automation. Separately, support for checkboxes and radio buttons is being developed to extend automation beyond text fields and dropdowns. Both features have draft implementations in review.

                                                                                      How can I help on this project?

                                                                                      Support testing of the two in-progress features by arranging user acceptance sessions with content teams who rely on diverse form controls. Consider allocating design or product resources to define refinement use cases beyond text fields, such as image or media workflows.

                                                                                      Contributors: Edward Zwart (ezeedub) [1], Scott Euser (scotteuser)

                                                                                      ---

                                                                                      AI translate

                                                                                      The AI translate module saw automated maintenance activity this period, with compatibility work underway for Drupal 12. A compatibility fix issue was opened to address deprecated code, ensuring the module can function on the next major version of Drupal. A corresponding merge request containing automated fixes has been prepared and is awaiting review.

                                                                                      This work is essential for keeping the module viable as the platform evolves. Without these updates, the module would be unable to support sites upgrading to Drupal 12, limiting its usefulness and adoption. The changes are part of routine maintenance to preserve compatibility across platform versions.

                                                                                      No commits were merged during this period. The automated fixes remain under review. This is a normal part of the development cycle for modules preparing for future platform releases.

                                                                                      How can I help on this project?

                                                                                      • Allocate developer time to review and merge the pending Drupal 12 compatibility updates to keep the module current with platform evolution.
                                                                                      • Consider prioritizing resources for testing the compatibility changes in a staging environment before the Drupal 12 release window.

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

                                                                                      ---

                                                                                      AI powered Search Block

                                                                                      Activity in the last 24 hours was limited to automated maintenance. A merge request for automated project updates was opened to keep the module aligned with current Drupal standards and tooling. This type of routine maintenance helps ensure the module remains compatible with the broader Drupal ecosystem as it evolves.

                                                                                      No functional changes or bug fixes were delivered during this period. The module continues in its current state with no material progress on features or issue resolution.

                                                                                      How can I help on this project?

                                                                                      • Consider whether dedicated development resources should be allocated to move this module forward with new capabilities or address outstanding issues.
                                                                                      • Clarify strategic priority: determine if this module aligns with organizational goals and warrants continued investment.

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

                                                                                      ---

                                                                                      FlowDrop

                                                                                      Work has begun to prepare FlowDrop for compatibility with the upcoming Drupal 12 release. An automated compatibility update was opened to identify and address deprecated code that will no longer be supported in the next major version of Drupal. A corresponding merge request has been created containing proposed fixes.

                                                                                      This work is routine maintenance necessary to ensure the module remains functional when users upgrade their Drupal installations. Addressing these updates proactively reduces the risk of disruption for organizations relying on FlowDrop after Drupal 12 launches. The changes are still under review and have not yet been integrated.

                                                                                      How can I help on this project?

                                                                                      • Allocate maintainer time to review and validate the compatibility updates, ensuring they can be merged before Drupal 12's release.
                                                                                      • Consider funding testing resources to verify FlowDrop functions correctly with the updated codebase in real-world scenarios.

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

                                                                                      ---

                                                                                      FlowDrop UI Agents

                                                                                      Progress continues on preparing the module for Drupal 12 compatibility. A merge request containing automated compatibility fixes was opened to address deprecated code patterns, supporting the longer-term goal of ensuring the module remains viable as the Drupal platform evolves. This work relates to the ongoing Automated Drupal 12 compatibility fixes effort.

                                                                                      The changes are part of routine modernization activities to keep the module aligned with upcoming platform requirements. This type of proactive maintenance reduces technical debt and helps avoid compatibility issues when Drupal 12 becomes the primary supported version.

                                                                                      No code was merged during this period, and the compatibility work remains in progress. This is typical for early-stage platform transition efforts, where changes are reviewed and tested before integration.

                                                                                      How can I help on this project?

                                                                                      • Allocate developer time to review and validate the pending Drupal 12 compatibility changes to accelerate the transition timeline.
                                                                                      • Clarify the strategic priority of Drupal 12 readiness relative to other module development efforts to guide resource planning.

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

                                                                                      ---

                                                                                      AG-UI

                                                                                      Work has begun to prepare the AG-UI module for compatibility with Drupal 12. An automated process identified deprecated code that will need to be updated before the next major version of Drupal is released. A merge request containing compatibility fixes has been opened and is awaiting review. This work ensures the module will continue to function when the platform is upgraded, reducing future technical debt and avoiding disruption to users.

                                                                                      This is routine maintenance for an evolving codebase. No other development activity was recorded during this period.

                                                                                      How can I help on this project?

                                                                                      • Assign a developer with knowledge of the module to review and approve the pending Drupal 12 compatibility changes, ensuring they align with project standards.
                                                                                      • Clarify the project's roadmap and priority level to determine whether active feature development or maintenance-only support is expected going forward.

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

                                                                                      ---

                                                                                      AI Related Content

                                                                                      A critical bug affecting the Pinecone integration was resolved during this period. The issue prevented the related content view from returning any results when using Pinecone as the vector database provider. The problem stemmed from two separate bugs in the code that retrieves vectors: one involved using a field identifier that Pinecone could not process, causing queries to return random matches instead of the intended content, and another involved overly strict matching logic that would reject valid results. The fix was merged, restoring functionality for sites using Pinecone to surface related content.

                                                                                      Separately, automated compatibility work for Drupal 12 has begun. An automated compatibility issue was opened and a corresponding merge request submitted to remove deprecated API usage ahead of the next major Drupal release. This work ensures the module will remain compatible as the platform evolves.

                                                                                      How can I help on this project?

                                                                                      • Review and approve the Drupal 12 compatibility changes to ensure the module remains supported on future platform versions.
                                                                                      • Allocate testing resources to verify the Pinecone fix performs as expected in production-like environments.
                                                                                      Contributors: project update bot (Project-Update-Bot), Scott Euser (scotteuser) [1] ======================================================================== ## [55] factcheck:tldr:executive ======================================================================== Layer-1 corrections: 0 Judge flags: 0 ======================================================================== ## [56] 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] Uninstalling ai_ckeditor leaves stale toolbar items in editor.editor.* configuration (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586570 [2] Config action to verify if any vector database is there and it is setup (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586517 [3] Batch embeddings for improved indexing performance (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3568648 [4] Improve ai_ckeditor UX when no provider modules are installed (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586549 [5] Add "throttle API requests" control? (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3561243 [6] [Discuss] Shift focus from provider plugins to operation type plugins in AI Core (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3559800 [7] Plugin shouldn't show any fields if no text is selected (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3557016 [8] Tools UI overview page does not load (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3579979 [9] Add a setup-guardrails agent skill to configure guardrails, guardrail sets, and global guardrails (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586561 [10] Move out AI Content Suggestions (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3552885 [11] AI CKEditor: Hardcoded “summarize” message shown for all plugins when no text is selected (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3575346 [12] [Discuss] Consider adding Agents.md (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3573186 [13] Drupal AI Contribution meeting 2026-02-09 (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3570259 [14] Create agents as Tools (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3556380 [15] Implement Process System Integration for Automators (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3493291 [16] [Discuss] Allow usage of Tool API in Agents (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3556140 [17] ai_ckeditor: Add option to show or hide the "AI Writer" status information (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586569 [18] Plan: Add cancel button to AI Chatbot (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3499583 [19] Use core Json::encode() and Json::decode everywhere possible (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3480683 [20] Move Prompt Library menu link under AI Infrastructure instead of Vector Database Configuration (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586499 [21] Prompt Library menu item missing due to incorrect parent (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3585596 [22] [Discuss] Core support for browser providers (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3577202 [23] Research better practices for recipes (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3577175 [24] Improvement suggestions for ai_automators docs (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3572751 [25] Create an HTML to Markdown API and service (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3574246 [26] Support the `ai_json_schema` element inside off-canvas dialogs (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586536 [27] Provide proper support for "unconfigured" AI provider state (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3572645 [28] Add an AI reranking processor for Search API (owned by the AI module) (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586543 [29] Clean up ai_observability settings form (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3574499 [30] [Research] Mechanism to force deprecated bundled submodules onto their contrib version (start with ai_validations) (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586538 [31] AI CKEditor regression in 1.5.x? (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586567 [32] Unable to override the 'Calling agents' / 'Contacting agents' text (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586389 [33] Glossary for the Drupal AI initiative (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3577844 [34] Add info about initiative and release differences to project page (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586568 [35] Generalize behaviour of FWA with Automators (AI Core v2) (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586515 [36] Issue when creating content and click on AI Assistant on Ckeditor (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586545 [37] Automated Drupal 12 compatibility fixes for ai 2.0.x-dev (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586525 [38] Fiber branch in OpenAiBasedProviderClientBase::chat() drops token usage from the reconstructed ChatOutput (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586522 [39] Allow vector database providers to opt in as the default VDB when none is set (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586500 [40] Use ai_provider_configuration form element in RestrictToTopic configuration form (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586472 [41] Issue #3586517: Check if any Vdb provider is setup (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1660 [42] feat(ai_ckeditor): warn users when no AI provider is installed in the CKEditor settings tab (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1701 [43] Issue #3568648: Batch embeddings as a first-class operation type (follow-up to !1704) (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1726 [44] task: #3586561 Add a setup-guardrails agent skill to configure guardrails,... (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1724 [45] Remove ai_content_suggestions module for ai core (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1042 [46] Issue #3585596: Move Prompt Library under AI Infrastrcture (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1522 [47] Issue #3585596: Move Prompt Library under AI Infrastrcture (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1521 [48] Issue #3585596: Move Prompt Library under AI Infrastrcture (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1523 [49] docs: #3572751 Add docs for the Field widget Actions automator worker (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1293 [50] Adding a new point about Automator Worker (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1187 [51] Adding a new point about Automator Worker (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1201 [52] feat: #3586538 Add hook_requirements and hook_update_10001 for ai_validations deprecation (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1725 [53] Issue #3586389: Add agent delegation message setting (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1539 [54] Draft: Fix lb asymetric translation (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1687 [55] Issue #3586522: Keep token usage in the chat() Fiber branch (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1723 [56] Issue #3586522: Keep token usage in the chat() Fiber branch (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1722 [57] Issue #3586522: Keep token usage in the chat() Fiber branch (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1719 [58] Issue #3586522: Keep token usage in the chat() Fiber branch (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1721 [59] Issue #3586522: Keep token usage in the chat() Fiber branch (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1720 [60] Issue #3586522: Keep token usage in the chat() Fiber branch (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1670 [61] Cherry-pick changes from #3586500 (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1718 [62] [META] 2026 Outside-in / Innovation Roadmap (draft) (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3576908 [63] Add standardized GitLab issue templates for initiative work (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3586461 [64] 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 [65] Automated Project Update Bot fixes (ai_integration_eca, MR) — https://git.drupalcode.org/project/ai_integration_eca/-/merge_requests/13 [66] add support for batch embeddings (ai_provider_openai, MR) — https://git.drupalcode.org/project/ai_provider_openai/-/merge_requests/59 [67] Automated Project Update Bot fixes (ai_provider_openai, MR) — https://git.drupalcode.org/project/ai_provider_openai/-/merge_requests/77 [68] pgsql ext dependency missing in composer.json (ai_provider_amazeeio, Issue) — https://git.drupalcode.org/project/ai_provider_amazeeio/-/work_items/3586235 [69] Automated Drupal 12 compatibility fixes for ai_provider_amazeeio 2.0.x-dev (ai_provider_amazeeio, Issue) — https://git.drupalcode.org/project/ai_provider_amazeeio/-/work_items/3586234 [70] fix(#3586231): check that key identifiers are non-empty strings before loading keys (ai_provider_amazeeio, MR) — https://git.drupalcode.org/project/ai_provider_amazeeio/-/merge_requests/74 [71] chore: require ext-pgsql (ai_provider_amazeeio, MR) — https://git.drupalcode.org/project/ai_provider_amazeeio/-/merge_requests/76 [72] Automated Project Update Bot fixes (ai_provider_amazeeio, MR) — https://git.drupalcode.org/project/ai_provider_amazeeio/-/merge_requests/77 [73] Automated Drupal 12 compatibility fixes for gemini_provider 1.x-dev (gemini_provider, Issue) — https://git.drupalcode.org/project/gemini_provider/-/work_items/3589187 [74] Automated Project Update Bot fixes (gemini_provider, MR) — https://git.drupalcode.org/project/gemini_provider/-/merge_requests/41 [75] add support for batching on indexing operations (ai_vdb_provider_milvus, MR) — https://git.drupalcode.org/project/ai_vdb_provider_milvus/-/merge_requests/44 [76] Automated Project Update Bot fixes (ai_vdb_provider_milvus, MR) — https://git.drupalcode.org/project/ai_vdb_provider_milvus/-/merge_requests/50 [77] Views agent: style/row and filters/filter_groups must be overridden as pairs on non-default displays (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3582782 [78] UpdateViewPlugins: display option updates on non-default displays do not override defaults inheritance (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3582781 [79] Fix streaming (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3577520 [80] Add limits on how often a tool can run (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3547995 [81] 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 [82] Exceptions in tool execute break the UI for the user (ai_agents, Issue) — https://git.drupalcode.org/project/ai_agents/-/work_items/3537123 [83] Automated Project Update Bot fixes (ai_agents, MR) — https://git.drupalcode.org/project/ai_agents/-/merge_requests/282 [84] tool:run masks the failure message: getOutputValues() throws on unset outputs of a failed tool (tool, Issue) — https://git.drupalcode.org/project/tool/-/work_items/3582942 [85] Dependency Dashboard (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591657 [86] Canvas icon / logo for Project Browser and project page (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3545468 [87] Component inputs order is database-backend-dependent: fix inputs key order assertions in tests and enforce it via PHPStan when possible (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591726 [88] Symmetric translation: component instance version updates must propagate to all translations (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591596 [89] Deduplicate the shared JavaScript component test fixture and prop-mutation helpers across the translation-propagation and component-instance-updater kernel tests (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591723 [90] Put conflict detection behind a dev mode flag (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591725 [91] Avoid registering draft asset-library JS URLs to prevent locale's js_alter from treating them as local files (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591719 [92] Draft asset library JS asset registered as a file triggers file_get_contents() warning in locale's JS scan (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591729 [93] Strengthen test coverage for multi-translation multi-component instance automatic version updating (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591730 [94] Flat named component validation in @drupal-canvas/eslint-config misses sibling entrypoints (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591717 [95] Canvas AI: canvas_ai_post_update_0003 strips the orchestrator agent UUID via setData() (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591660 [96] Use notifications to inform users about the detected conflicts (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591715 [97] Boolean props auto-enable when another prop is changed in the Canvas form (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591716 [98] Automated Drupal 12 compatibility fixes for canvas 1.x-dev (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591603 [99] Canvas AI: Component context required props missing required flag (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591655 [100] Canvas AI: Remove hardcoded component source IDs (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591652 [101] Canvas AI: An unexpected error has occurred while rendering preview (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3556922 [102] Refactor away the brittle`PageRegion::forAutoSaveData()` (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591728 [103] Add `canvas-validate-component-trees` Drupal CLI command to check health of Canvas component trees: validate every Canvas (content|config) entity, validate every content entity component tree field revision+translation (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591667 [104] Deleting optional props from an SDC/code component causes validation errors in config-defined component instances: regression for monolingual sites, bug for multilingual sites (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591727 [105] Symmetrically translatable config-defined component trees, STEP 2: change config schema type for `inputs` to allow translating via core's Config Translation UI for ContentTemplates & PageRegions (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3582478 [106] Changing Metadata Clears Canvas AI Prompt Text (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3558257 [107] Canvas AI: Expose Props of Blocks to the Agent (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3569120 [108] Canvas AI: UI/Functional update. Lock the canvas during a build and add a long-running AI-tasks UI element to the chat (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591724 [109] chore(deps): update dependency cspell to v10 (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1273 [110] chore(deps): update mysql docker tag to v8.3 (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1272 [111] fix(deps): update npm minor and patch (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1238 [112] Issue #3591726: Compare component inputs order-independently in tests and enforce it via PHPStan (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1291 [113] feat: #3591596 Apply component instance updater to all component trees: content/config non-default translations; introduce `StagedLanguageConfigOverride` to treat both similarly (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1271 [114] Put conflict detection behind feature flag (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1290 [115] fix(autoSave, internalHttpApi): #3591729 Register draft asset library JS as external so locale's JS scan skips it (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1293 [116] feat(CLI Tool): Clean up the output of all CLI commands (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1280 [117] #3591654 "Update the delete link generation in ApiLayoutController.php to use canvas.api.config.translation.delete in the template context" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1234 [118] fix(CLI Tool): #3591717 Flat named component validation in @drupal-canvas/eslint-config misses sibling entrypoints (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1284 [119] Issue #3591660: Preserve agent UUID in canvas_ai post_update 0003 and repair affected sites (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1230 [120] fix(autoSave, internalHttpApi): #3591729 Register draft asset library JS as external so locale's JS scan skips it (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1292 [121] feat(Conflict detection): #3591601 "Conflict resolution via API call and layout endpoint support for published entities" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1194 [122] feat: #3518272 support all entity types with configurable displays for content templates (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/791 [123] Issue #3591652: Replace hardcoded component source plugin IDs with SOURCE_PLUGIN_ID constants (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1255 [124] #3591714: Resolve "Translating unpublished page crashes canvas" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1282 [125] Issues/3569120: Canvas AI: Expose Props of Blocks to the Agent. (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/498 [126] Issues/Canvas AI: An unexpected error has occurred while rendering preview (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/813 [127] feat(Conflict detection): #3587526 "Detect conflicts during publishing of changes to Page entity" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1193 [128] Draft: feat(Conflict detection): #3591668 "Text-based Page entity representation via Canvas API" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1241 [129] Fix Canvas AI prompt reset on metadata changes (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/530 [130] Add full view layout for context item canonical and revision pages based on new design (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586220 [131] 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 [132] Question about "Subcontext type = Conditional - included based on relevance" (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586149 [133] Fix PHPStan failures in CCC (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586238 [134] No public API for building scope subscription forms; consumers must depend on the internal scope manager (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586287 [135] Add Configure Link in Modules Page (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586285 [136] Copy and layout updates on context item scope form (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586284 [137] `hook_ai_context_scope_values_alter()` is ignored by scope forms and labels (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586286 [138] Fix phpstan error in AiContextSubcontextToggleTrait (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586259 [139] CCC UX sync 27 May 2026 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586236 [140] Improve conditional subcontext disabled-state behavior and admin UX (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586292 [141] Error when running database updates from beta2 to latest -dev (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586290 [142] [Feature] Add ExternalContextProviderInterface and ContextQueryInterface to support RAG/vector store integrations (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586289 [143] Add #[RunTestsInSeparateProcesses] attribute to all kernel test classes (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586280 [144] Introduce explicit scope types and item inclusion modes; clarify selection in UI and docs (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586281 [145] Promote Document Loader: Context Importer from experimental to stable (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586282 [146] Update project page to make it more clear that CCC is for agents (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586278 [147] CCC beta / pre-rc1 community testing (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586234 [148] Test AI Best Practices skills on AI Context codebase (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586258 [149] Rename entity bundle and target entity scope plugins for better DX (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586276 [150] Allow subcontext scope to override parent scope (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586218 [151] [Discuss] Moderation status of subcontext vs parent context items (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586264 [152] Finalize Context Importer naming and review Extensions page UI/UX (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586283 [153] Possible UX improvements on new context listing page (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586274 [154] Automated Project Update Bot fixes (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/175 [155] Improve AI Ecosystem (ai_dashboard, Issue) — https://git.drupalcode.org/project/ai_dashboard/-/work_items/3585220 [156] AI Recipe modal is missing the argument (ai_dashboard, Issue) — https://git.drupalcode.org/project/ai_dashboard/-/work_items/3585216 [157] Issue #3585220: Improve AI Ecosystem (ai_dashboard, MR) — https://git.drupalcode.org/project/ai_dashboard/-/merge_requests/24 [158] Batch embeddings for improved indexing performance (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584024 [159] Resolve "Batch embeddings for improved indexing performance" (ai_search, MR) — https://git.drupalcode.org/project/ai_search/-/merge_requests/53 [160] Allow other contrib modules to mark their field widgets as childless so FWA actions still appear (field_widget_actions, Issue) — https://git.drupalcode.org/project/field_widget_actions/-/work_items/3578202 [161] Add interactive refinement capability to Field Widget Actions (field_widget_actions, Issue) — https://git.drupalcode.org/project/field_widget_actions/-/work_items/3547306 [162] Support for checkboxes/radio buttons using Ajax JS Commands (field_widget_actions, Issue) — https://git.drupalcode.org/project/field_widget_actions/-/work_items/3578204 [163] Resolve "Allow other contrib modules to mark their field widgets as childless so FWA actions still appear" (field_widget_actions, MR) — https://git.drupalcode.org/project/field_widget_actions/-/merge_requests/26 [164] Resolve "Support for checkboxes/radio buttons using Ajax JS Commands" (field_widget_actions, MR) — https://git.drupalcode.org/project/field_widget_actions/-/merge_requests/25 [165] Issue #3547306: Add interactive refinement capability to Field Widget Actions (field_widget_actions, MR) — https://git.drupalcode.org/project/field_widget_actions/-/merge_requests/19 [166] Automated Drupal 12 compatibility fixes for ai_translate 2.0.x-dev (ai_translate, Issue) — https://git.drupalcode.org/project/ai_translate/-/work_items/3585524 [167] Automated Project Update Bot fixes (ai_translate, MR) — https://git.drupalcode.org/project/ai_translate/-/merge_requests/23 [168] Automated Project Update Bot fixes (ai_search_block, MR) — https://git.drupalcode.org/project/ai_search_block/-/merge_requests/43 [169] Automated Drupal 12 compatibility fixes for flowdrop 1.x-dev (flowdrop, Issue) — https://git.drupalcode.org/project/flowdrop/-/work_items/3592077 [170] Automated Project Update Bot fixes (flowdrop, MR) — https://git.drupalcode.org/project/flowdrop/-/merge_requests/11 [171] Automated Drupal 12 compatibility fixes for flowdrop_ui_agents 1.0.x-dev (flowdrop_ui_agents, Issue) — https://git.drupalcode.org/project/flowdrop_ui_agents/-/work_items/3584958 [172] Automated Project Update Bot fixes (flowdrop_ui_agents, MR) — https://git.drupalcode.org/project/flowdrop_ui_agents/-/merge_requests/27 [173] Automated Drupal 12 compatibility fixes for agui 1.0.x-dev (agui, Issue) — https://git.drupalcode.org/project/agui/-/work_items/3590037 [174] Automated Project Update Bot fixes (agui, MR) — https://git.drupalcode.org/project/agui/-/merge_requests/30 [175] Automated Drupal 12 compatibility fixes for ai_related_content 2.0.x-dev (ai_related_content, Issue) — https://git.drupalcode.org/project/ai_related_content/-/work_items/3576575 [176] Pinecone: fix `getVectorFromNode()` returning no results (ai_related_content, Issue) — https://git.drupalcode.org/project/ai_related_content/-/work_items/3576574 [177] Automated Project Update Bot fixes (ai_related_content, MR) — https://git.drupalcode.org/project/ai_related_content/-/merge_requests/19 [178] Resolve "Pinecone: fix `getVectorFromNode()` returning no results" 2x (ai_related_content, MR) — https://git.drupalcode.org/project/ai_related_content/-/merge_requests/17 [179] Resolve "Pinecone: fix `getVectorFromNode()` returning no results" 1x (ai_related_content, MR) — https://git.drupalcode.org/project/ai_related_content/-/merge_requests/18 --- TODAY'S MODULE SUMMARIES ---

                                                                                        AI (Artificial Intelligence)

                                                                                        The AI module made progress on infrastructure improvements, bug fixes, and developer experience during the reporting period. Several foundational changes were merged that strengthen platform capabilities and correct issues affecting production use.

                                                                                        A critical fix was merged to preserve token usage data in streaming chat responses. Previously, when chat operations ran inside PHP Fibers, token usage information was lost during output reconstruction, preventing accurate cost tracking and observability. This issue now affects fewer deployments.

                                                                                        The AI Content Suggestions module was separated into its own standalone project, streamlining the core AI module and allowing independent development cycles. The Prompt Library menu item was relocated under AI Infrastructure where it belongs, improving discoverability for site builders. A new capability allowing vector database providers to opt in as the default was merged, matching behaviour already available to AI providers and reducing manual configuration.

                                                                                        Work continues on several front-end improvements: clearer user warnings when no AI provider is installed for CKEditor, and configurable agent delegation messages to avoid confusing terminology in chatbot interfaces. A batch embeddings operation type is under active development to accelerate indexing performance for vector databases.

                                                                                        How can I help on this project?

                                                                                        • Prioritise user-experience work flagged as "Needs UX review" — clearer provider warnings and hardcoded message fixes improve adoption but need design input.
                                                                                        • Support decisions on the deprecation and migration strategy for bundled submodules moving to standalone projects; this affects upgrade paths for production sites.

                                                                                        Contributors: Abhisek Mazumdar (abhisekmazumdar), Ahmad Khalil (ahmad-khalil-imagex), Ann Mary Sruthy (annmarysruthy), Arnaud Willame (arwillame), Artem Dmitriiev (a.dmitriiev), Dimitar Rupov (mrupal), Eric Homanchuk (erichomanchuk), Jérôme Tchania (codeitwisely), m4olivei, Ricardo Castañeda (cadence96), Sujal Kshatri (sujal_31), Wolfgang Ziegler (fago)

                                                                                        ---

                                                                                        Drupal AI Initiative

                                                                                        The AI Initiative is focusing on making Drupal ready for external AI agents and automated systems while maintaining control and safety. The 2026 roadmap emphasizes building reliable foundations: identity management, permissions enforcement, schema validation, and audit trails that let organizations safely allow AI agents to perform real work within defined boundaries.

                                                                                        Over the past day, standardized issue templates for initiative work were finalized and closed. These templates will help contributors across all four initiative tracks (AI Core, Products, Marketing, and UX) create consistently structured issues for coordination, research, decisions, meetings, and community activities. This organizational infrastructure should accelerate collaboration as the contributor base grows.

                                                                                        The 2026 Outside-in / Innovation Roadmap remains in active planning. The strategy prioritizes making Drupal governable and auditable when external AI systems interact with it, rather than requiring organizations to use only Drupal-native AI tools.

                                                                                        How can I help on this project?

                                                                                        • Ensure sufficient resourcing is allocated to the identity and permissions work, which forms the security foundation for agent integration.
                                                                                        • Support cross-functional alignment between the four initiative tracks to maintain coherent delivery of the roadmap.
                                                                                        ---

                                                                                        AI Integration - ECA

                                                                                        Work continued on preparing this module for Drupal 12 compatibility. An automated process identified code that uses outdated programming interfaces that will no longer be supported in the next major version of Drupal. A merge request containing compatibility fixes was prepared and is now ready for review as part of ongoing Drupal 12 compatibility work. This type of maintenance is routine for modules as the platform evolves, ensuring the integration between AI capabilities and event-driven automation remains functional when Drupal's core framework is upgraded. No commits were merged during this period, and the compatibility updates await further assessment.

                                                                                        How can I help on this project?

                                                                                        • Prioritize technical review capacity to assess and approve the pending Drupal 12 compatibility changes, ensuring the module remains viable as the platform evolves.
                                                                                        • Clarify the strategic timeline for Drupal 12 adoption to help determine urgency and resource allocation for this compatibility work.
                                                                                        Contributors: project update bot (Project-Update-Bot) ---

                                                                                        OpenAI Provider

                                                                                        Two development efforts are underway to improve the module's capabilities and maintenance. A new merge request to add support for batch embeddings has been opened, which would enable the system to process multiple embedding requests together rather than one at a time. This can improve efficiency when working with larger volumes of content that needs to be analyzed or processed by AI services.

                                                                                        Additionally, an automated project update has been prepared to keep the module aligned with current Drupal project standards and tooling requirements.

                                                                                        No commits were merged during this period, indicating these contributions are still under review. Both items represent routine development activity consistent with an evolving module.

                                                                                        How can I help on this project?

                                                                                        • Ensure technical reviewers have capacity to evaluate the pending batch embeddings feature, which could improve performance for higher-volume use cases.
                                                                                        • Confirm whether batch processing capabilities align with planned business applications of AI-powered content features.

                                                                                        Contributors: Paul Sheldrake (paulsheldrake), project update bot (Project-Update-Bot)

                                                                                        ---

                                                                                        amazee.ai Private AI Provider

                                                                                        This module provides integration with amazee.ai's private AI services. Over the past 24 hours, work continued on stabilising the module and preparing for future platform compatibility.

                                                                                        Two fixes were merged to address runtime issues. A missing dependency on the PostgreSQL extension was added to prevent errors when connecting to the vector database. Separately, validation was added to ensure key identifiers are properly checked before use, preventing configuration errors from causing failures.

                                                                                        An automated compatibility assessment for Drupal 12 was also initiated. A merge request with compatibility updates has been prepared and is awaiting review. This work ensures the module will remain functional as the Drupal platform evolves.

                                                                                        The module is progressing steadily with fixes that improve reliability for organisations using private AI capabilities in their Drupal environments.

                                                                                        How can I help on this project?

                                                                                        • Prioritise review and approval of the pending Drupal 12 compatibility changes to ensure the module remains supported on future platform versions.
                                                                                        • Consider dedicating testing resources to validate the module's behaviour with PostgreSQL-based vector database configurations in production-like environments.

                                                                                        Contributors: Dan Lemon (dan2k3k4), project update bot (Project-Update-Bot)

                                                                                        ---

                                                                                        Gemini Provider

                                                                                        The Gemini Provider module saw preparatory work for future platform compatibility this period. An automated issue tracking Drupal 12 compatibility was opened, along with a corresponding merge request containing automated fixes. This work ensures the module will remain functional as the Drupal platform evolves, protecting the investment made in this integration.

                                                                                        No commits were merged during this period, indicating this compatibility work is still under review. The module appears to be in active maintenance with automation helping identify necessary updates ahead of time.

                                                                                        How can I help on this project?

                                                                                        • Ensure development resources are available to review and validate the automated compatibility changes, so the module stays current with platform requirements.
                                                                                        • Clarify the strategic roadmap for this module to help prioritize compatibility work against other feature development needs.

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

                                                                                        ---

                                                                                        Milvus VDB Provider

                                                                                        During this reporting period, two new development efforts were initiated to improve the module's capabilities and quality.

                                                                                        Work began on add support for batching on indexing operations, which will enable the system to process multiple indexing tasks together rather than one at a time. This should improve performance when handling large volumes of content, reducing the time needed to make information searchable.

                                                                                        Additionally, Automated Project Update Bot fixes were prepared to maintain code quality standards and keep the module aligned with Drupal project requirements.

                                                                                        No issues were updated and no code was merged during this period, indicating that development work is progressing through the review stage. Both efforts are in progress and represent incremental improvements to system performance and maintainability.

                                                                                        How can I help on this project?

                                                                                        • Ensure dedicated review resources are available to assess and merge pending development work, preventing bottlenecks in the delivery pipeline.
                                                                                        • Confirm that performance improvement initiatives like batching align with broader organizational priorities for scaling content operations.

                                                                                        Contributors: Artem Dmitriiev (a.dmitriiev), project update bot (Project-Update-Bot)

                                                                                        ---

                                                                                        AI Agents

                                                                                        The AI Agents module saw maintenance and quality work this period. Several longstanding issues with the Views agent were identified, where display configuration changes requested by users were not being correctly applied to non-default displays due to how the system handles inherited settings and coupled configuration pairs.

                                                                                        A merge request was opened to bring the module into compatibility with Drupal 12, addressing deprecated code patterns. This is routine preparation work as the platform evolves.

                                                                                        No code was merged during this period. The module has six open issues covering functionality gaps and error handling improvements, including limits on tool execution frequency and better user feedback when tools encounter errors. These are typical refinements for a module in active development.

                                                                                        How can I help on this project?

                                                                                        • Prioritize the Views agent display override bugs if they affect user-facing functionality you need.
                                                                                        • Consider allocating review time to evaluate the Drupal 12 compatibility changes and the streaming fix to move them toward merge.

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

                                                                                        ---

                                                                                        Tool API

                                                                                        The Tool API module made progress on error handling this period. A defect preventing useful error messages from being displayed was resolved. Previously, when a tool operation failed, users would see a technical exception rather than the intended failure message explaining what went wrong. This issue has been closed and marked as fixed, meaning administrators and content teams using tools built on this module will now receive clearer feedback when operations do not complete successfully, reducing time spent troubleshooting.

                                                                                        This represents continued refinement of the module's core functionality, improving the day-to-day experience for end users who rely on tool-based workflows.

                                                                                        How can I help on this project?

                                                                                        • Assess whether additional testing resources are needed to validate error handling improvements across different tool implementations before wider deployment.
                                                                                        • Determine if documentation updates are required to communicate these user-facing improvements to site administrators and support teams.
                                                                                        ---

                                                                                        Drupal Canvas

                                                                                        Over the past 24 hours, Canvas delivered significant progress on translation infrastructure and data integrity. A critical feature enabling automatic version updates for component instances across all translations was completed. Previously, when a component's definition changed, only the actively edited language received the update; other translations were left with mismatched version markers. The system now applies updates to every language variant of a content or configuration entity, ensuring all translations stay synchronized with the latest component versions.

                                                                                        Work continued on conflict detection tooling, with the feature now placed behind a development flag to prevent interference with the translation rollout. A related fix resolved a PHP warning on multilingual sites where draft asset libraries were incorrectly scanned for translation strings. The project also addressed a data-consistency issue where test assertions failed on certain database backends due to differing JSON key ordering, and resolved a problem where AI-related configuration updates inadvertently stripped critical metadata.

                                                                                        Several smaller quality-of-life improvements were merged, including fixes to component validation in the CLI tool and removal of hardcoded identifiers in AI-related update hooks. Multiple open issues remain in active development, covering conflict-resolution UI, AI prompt stability, and validation tooling for checking component tree health at scale.

                                                                                        How can I help on this project?

                                                                                        • Prioritize scoping and stakeholder review for the CLI command validating component tree health across all entities and translations, which will help prevent costly data integrity issues in production deployments.
                                                                                        • Allocate developer time to address open validation errors when optional component properties are removed, particularly for config-defined instances, to prevent regressions for sites upgrading to multilingual support.

                                                                                        Contributors: **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Abhishek Dhariwal (adaptative) [1], Adam G-H (phenaproxima), AKHIL BABU (AkhilBabu), Bálint Kléri (balintbrews) [1], Christian López Espínola (penyaskito) [2], Feliksas Mazeikis (f.mazeikis) [1], Kunal Sachdev (kunal.sachdev), Matt Glaman (mglaman) [1], scott falconer (scottfalconer), Wim Leers (wimleers) [1]

                                                                                        ---

                                                                                        Context Control Center (CCC)

                                                                                        This period saw substantial progress on user interface improvements and code quality across the Context Control Center. Multiple efforts to refine how site builders understand and configure context selection moved forward, addressing feedback from beta testing.

                                                                                        Four issues were closed, focusing on polish and developer experience. Work included Copy and layout updates on context item scope form to simplify form presentation, Add Configure Link in Modules Page for easier navigation, and Fix PHPStan failures in CCC to resolve code quality issues. Two bugs blocking stable release were resolved: hook_ai_context_scope_values_alter() is ignored by scope forms and labels now properly enables third-party modules to extend scope options, and No public API for building scope subscription forms established a supported integration path for other modules needing scope UI components.

                                                                                        Several issues progressed toward release candidate readiness. Discussions continued on improving how conditional subcontext behavior is presented to editors, clarifying scope selection concepts, and stabilizing the Document Loader integration. Automated compatibility work for Drupal 12 was initiated.

                                                                                        How can I help on this project?

                                                                                        Support the community testing initiative to gather feedback before the first release candidate. Consider allocating resources to finalize documentation and naming conventions across the scope and subcontext features, which will reduce onboarding friction for site builders.

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

                                                                                        ---

                                                                                        AI Dashboard

                                                                                        Activity this period focused on documentation improvements and issue management. Work continued on the Improve AI Ecosystem initiative, which aims to help users discover and understand available AI modules for Drupal. The ecosystem browser is being refined to make it easier to navigate the growing landscape of AI integrations, with improvements to visual presentation and filtering capabilities now complete. Plans include automating content updates and enhancing how modules are categorized for easier discovery.

                                                                                        A usability issue affecting the recipe installation feature was closed. The AI Recipe modal is missing the path argument issue, which prevented users from successfully running installation commands shown in the interface, has been postponed. This was causing confusion when users attempted to install pre-configured AI features from the dashboard.

                                                                                        How can I help on this project?

                                                                                        Consider prioritizing the postponed recipe modal issue, as it currently blocks a key self-service installation feature. If the ecosystem browser shows strategic value, advocate for its integration directly into the dashboard interface to improve module discoverability for site administrators.

                                                                                        Contributors: Rob Loach (robloach)

                                                                                        ---

                                                                                        AI Search

                                                                                        Work is underway to improve how the AI Search module handles content indexing at scale. A solution for batch embeddings for improved indexing performance has been prepared and is now under review. This capability processes content in batches rather than one item at a time, which will reduce server load and speed up the indexing process when large volumes of content need to be analyzed. This is particularly important for sites with extensive content libraries or those performing initial setup.

                                                                                        The work is part of a broader consolidation effort, bringing functionality previously developed elsewhere into the AI Search module to ensure it remains current and supported going forward.

                                                                                        How can I help on this project?

                                                                                        • Ensure the team has access to testing environments with realistic content volumes to validate performance improvements before release.
                                                                                        • Clarify deployment timelines and communicate expectations to stakeholders waiting for indexing performance enhancements.

                                                                                        Contributors: Artem Dmitriiev (a.dmitriiev)

                                                                                        ---

                                                                                        Field Widget Actions

                                                                                        Field Widget Actions now supports interactive refinement of AI-generated content. A new interactive refinement capability was merged, allowing users to review generated content in a modal dialog and improve it with follow-up instructions before inserting it into their fields. For example, users can ask the system to make content shorter or adjust its tone without starting over. This capability is optional and turned off by default, so existing workflows remain unchanged. The feature gives content teams more control over AI outputs and reduces the need for manual post-editing.

                                                                                        Two new feature requests are under review. Work is progressing on allowing other modules to mark their field widgets as compatible with Field Widget Actions, which will expand the range of form controls that can benefit from automation. Separately, support for checkboxes and radio buttons is being developed to extend automation beyond text fields and dropdowns. Both features have draft implementations in review.

                                                                                        How can I help on this project?

                                                                                        Support testing of the two in-progress features by arranging user acceptance sessions with content teams who rely on diverse form controls. Consider allocating design or product resources to define refinement use cases beyond text fields, such as image or media workflows.

                                                                                        Contributors: Edward Zwart (ezeedub) [1], Scott Euser (scotteuser)

                                                                                        ---

                                                                                        AI translate

                                                                                        The AI translate module saw automated maintenance activity this period, with compatibility work underway for Drupal 12. A compatibility fix issue was opened to address deprecated code, ensuring the module can function on the next major version of Drupal. A corresponding merge request containing automated fixes has been prepared and is awaiting review.

                                                                                        This work is essential for keeping the module viable as the platform evolves. Without these updates, the module would be unable to support sites upgrading to Drupal 12, limiting its usefulness and adoption. The changes are part of routine maintenance to preserve compatibility across platform versions.

                                                                                        No commits were merged during this period. The automated fixes remain under review. This is a normal part of the development cycle for modules preparing for future platform releases.

                                                                                        How can I help on this project?

                                                                                        • Allocate developer time to review and merge the pending Drupal 12 compatibility updates to keep the module current with platform evolution.
                                                                                        • Consider prioritizing resources for testing the compatibility changes in a staging environment before the Drupal 12 release window.

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

                                                                                        ---

                                                                                        AI powered Search Block

                                                                                        Activity in the last 24 hours was limited to automated maintenance. A merge request for automated project updates was opened to keep the module aligned with current Drupal standards and tooling. This type of routine maintenance helps ensure the module remains compatible with the broader Drupal ecosystem as it evolves.

                                                                                        No functional changes or bug fixes were delivered during this period. The module continues in its current state with no material progress on features or issue resolution.

                                                                                        How can I help on this project?

                                                                                        • Consider whether dedicated development resources should be allocated to move this module forward with new capabilities or address outstanding issues.
                                                                                        • Clarify strategic priority: determine if this module aligns with organizational goals and warrants continued investment.

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

                                                                                        ---

                                                                                        FlowDrop

                                                                                        Work has begun to prepare FlowDrop for compatibility with the upcoming Drupal 12 release. An automated compatibility update was opened to identify and address deprecated code that will no longer be supported in the next major version of Drupal. A corresponding merge request has been created containing proposed fixes.

                                                                                        This work is routine maintenance necessary to ensure the module remains functional when users upgrade their Drupal installations. Addressing these updates proactively reduces the risk of disruption for organizations relying on FlowDrop after Drupal 12 launches. The changes are still under review and have not yet been integrated.

                                                                                        How can I help on this project?

                                                                                        • Allocate maintainer time to review and validate the compatibility updates, ensuring they can be merged before Drupal 12's release.
                                                                                        • Consider funding testing resources to verify FlowDrop functions correctly with the updated codebase in real-world scenarios.

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

                                                                                        ---

                                                                                        FlowDrop UI Agents

                                                                                        Progress continues on preparing the module for Drupal 12 compatibility. A merge request containing automated compatibility fixes was opened to address deprecated code patterns, supporting the longer-term goal of ensuring the module remains viable as the Drupal platform evolves. This work relates to the ongoing Automated Drupal 12 compatibility fixes effort.

                                                                                        The changes are part of routine modernization activities to keep the module aligned with upcoming platform requirements. This type of proactive maintenance reduces technical debt and helps avoid compatibility issues when Drupal 12 becomes the primary supported version.

                                                                                        No code was merged during this period, and the compatibility work remains in progress. This is typical for early-stage platform transition efforts, where changes are reviewed and tested before integration.

                                                                                        How can I help on this project?

                                                                                        • Allocate developer time to review and validate the pending Drupal 12 compatibility changes to accelerate the transition timeline.
                                                                                        • Clarify the strategic priority of Drupal 12 readiness relative to other module development efforts to guide resource planning.

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

                                                                                        ---

                                                                                        AG-UI

                                                                                        Work has begun to prepare the AG-UI module for compatibility with Drupal 12. An automated process identified deprecated code that will need to be updated before the next major version of Drupal is released. A merge request containing compatibility fixes has been opened and is awaiting review. This work ensures the module will continue to function when the platform is upgraded, reducing future technical debt and avoiding disruption to users.

                                                                                        This is routine maintenance for an evolving codebase. No other development activity was recorded during this period.

                                                                                        How can I help on this project?

                                                                                        • Assign a developer with knowledge of the module to review and approve the pending Drupal 12 compatibility changes, ensuring they align with project standards.
                                                                                        • Clarify the project's roadmap and priority level to determine whether active feature development or maintenance-only support is expected going forward.

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

                                                                                        ---

                                                                                        AI Related Content

                                                                                        A critical bug affecting the Pinecone integration was resolved during this period. The issue prevented the related content view from returning any results when using Pinecone as the vector database provider. The problem stemmed from two separate bugs in the code that retrieves vectors: one involved using a field identifier that Pinecone could not process, causing queries to return random matches instead of the intended content, and another involved overly strict matching logic that would reject valid results. The fix was merged, restoring functionality for sites using Pinecone to surface related content.

                                                                                        Separately, automated compatibility work for Drupal 12 has begun. An automated compatibility issue was opened and a corresponding merge request submitted to remove deprecated API usage ahead of the next major Drupal release. This work ensures the module will remain compatible as the platform evolves.

                                                                                        How can I help on this project?

                                                                                        • Review and approve the Drupal 12 compatibility changes to ensure the module remains supported on future platform versions.
                                                                                        • Allocate testing resources to verify the Pinecone fix performs as expected in production-like environments.
                                                                                        Contributors: project update bot (Project-Update-Bot), Scott Euser (scotteuser) [1] ======================================================================== ## [57] factcheck:capabilities:executive ======================================================================== Layer-1 corrections: 0 Judge flags: 5