# Prompt log — 24h 2026-06-26 ======================================================================== ## [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-26T05:00:05+00:00 to 2026-06-27T05: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), AKHIL BABU (AkhilBabu) [1], Artem Dmitriiev (a.dmitriiev), Hrishikesh Dalal (hrishikesh-dalal), Marcus Johansson (Marcus_Johansson), Mukeysh, Ricardo Castañeda (cadence96), Thomas Werthmüller (weri), velmir_taky (root_emarketing)". 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). ### [Batch embeddings for improved indexing performance](https://git.drupalcode.org/project/ai/-/work_items/3568648) State: opened | Updated: 2026-06-27 | Author: drupalbot | Assigned: Sergiu Nagailic (Nikro) | Labels: AI Initiative Sprint, AI Product Development, aiSearch, candidate 1.5.x Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1704 [Batch embeddings for improved indexing performance](https://git.drupalcode.org/project/ai/-/merge_requests/1704) | State: opened | Author: Artem Dmitriiev (a.dmitriiev), 286 diff lines 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… ### [Add interactive refinement capability to Field Widget Actions](https://git.drupalcode.org/project/ai/-/work_items/3586468) State: opened | Updated: 2026-06-26 | Author: Edward Zwart (ezeedub) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, category::feature, priority::normal Description: ## Summary Add support for interactive refinement in ai_automators Field Widget Action plugins, allowing users to iteratively improve AI-generated content through conversational prompts before accepting it into a field. This is the companion issue to https://www.drupal.org/project/field_widget_actions/issues/3547306, which adds the modal infrastructure. This issue covers wiring up the automator plugins to use it. ## Problem Field Widg… ### [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-26 | Author: Ricardo Castañeda (cadence96) | Assigned: unassigned | Labels: aiCkeditor, category::bug, priority::normal, state::needsReview 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*… ### [Support the `ai_json_schema` element inside off-canvas dialogs](https://git.drupalcode.org/project/ai/-/work_items/3586536) State: opened | Updated: 2026-06-26 | Author: Ahmad Khader (Ahmad-Khader) | Assigned: Rob Loach (robloach) | 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… ### [Field Widget Button labels are not translatable via UI](https://git.drupalcode.org/project/ai/-/work_items/3567027) State: closed | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: category::bug, fieldWidgetActions, priority::normal, shouldMove Description: >>> [!note] Migrated issue Reported by: [fago](https://www.drupal.org/user/16747) >>> [Tracker] Update Summary: Field Widget Button labels are not translatable via UI Short Description: Button labels in field widget actions are configured via entity-form-displays. However, entity form displays have no UI for configuring translations, thus, there is no dedicated page and no entry at /admin/config/regional/config-translation Check-in Date: MM/DD/YYYY Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem Button labels in field widget actions are configured vi… ### [Tone of voice CKEditor Plugin does not use the translated version of the linked taxonomy](https://git.drupalcode.org/project/ai/-/work_items/3586573) State: opened | Updated: 2026-06-26 | Author: Thomas Werthmüller (weri) | Assigned: unassigned | Labels: Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1730 [fix: #3586573 Tone of voice CKEditor Plugin does not use the translated...](https://git.drupalcode.org/project/ai/-/merge_requests/1730) | State: closed | Author: Thomas Werthmüller (weri), 153 diff lines Description: ## Summary When I create a taxonomy for the tone of voice and allow to translate the terms, in the UI of the CKEditor always the default language is displayed and also the description of this term is used for prompting and not the translated version. ## Environment - Drupal version: 11 - Module version: 1.4.3 ### Screenshots ![CleanShot_2026-06-26_at_16.30.17](https://git.drupalcode.org/-/project/106525/uploads/0df4b3af6167109ba085e44a575e6a88/CleanShot_2026-06-26_at_16.30.17.png){width="725" height="600"} ### [Add ai_budget_control to the ecosystem / related modules list](https://git.drupalcode.org/project/ai/-/work_items/3583958) State: closed | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: category::feature, priority::normal, state::closed, v2.0.x-dev Description: >>> [!note] Migrated issue Reported by: [tchida](https://www.drupal.org/user/3835690) Related to !1483 >>> [Tracker] Update Summary: Request to list ai_budget_control in the AI ecosystem. Short Description: Add ai_budget_control to the project page and README to help users manage API costs. Check-in Date: 04/09/2026 Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Users of the main ai module need tools to control API costs and prevent abuse. I released AI Budget Control to provide API provider "Hard Limits" and native Flood API quotas. Add… ### [Suggest Tags automator should work with Tagify](https://git.drupalcode.org/project/ai/-/work_items/3536912) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: #drupalpune-sprint, aiAutomators, category::feature, priority Description: >>> [!note] Migrated issue Reported by: [mandclu](https://www.drupal.org/user/52136) >>> Problem/Motivation The new field widget actions are great! In many ways these recreate the experience that drew me into developing for the Augmentor AI module. One thing I do miss is a simple way to choose which generated tags to choose. Augmentor achieves this with an interim widget, showing the suggested tags as tiles that when clicked add the suggestion into the tags field. I think we could achieve something similar if we could have a field widget action that worked with the Tagify widget. It would … ### [Document the AI module ecosystem: a categorized list of related modules with links and summaries](https://git.drupalcode.org/project/ai/-/work_items/3586482) State: opened | Updated: 2026-06-26 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: Rob Loach (robloach) | Labels: AI Initiative Sprint, AI Product Development, category::task, priority::normal Description: ## Description The AI module has grown a large ecosystem of companion projects on drupal.org — providers, vector database (VDB) providers, agents, recipes, tools, automators, and full distributions/CMS profiles. Today there is no single, curated page in the AI module's documentation that tells a site builder or developer **what exists, where to find it, and what each project does.** Discovering these modules currently means searching drupal.org by hand or relying on word of mouth. A maintained ecosystem index would make the AI module dramatically easier to adopt: people could see at a glance… ### [Save AI Content Suggestion plugin settings inside ai_content_suggestions.settings config object](https://git.drupalcode.org/project/ai/-/work_items/3586437) State: opened | Updated: 2026-06-26 | Author: Artem Dmitriiev (a.dmitriiev) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, aiContentSuggestions, category::feature Description: ## Summary At the moment the settings of AI Content Suggestion plugins are splitted between 3 config objects: - ai_content_suggestions.settings - ai_content_suggestions.prompts - ai_content_suggestions.tone ## Problem Content object `ai_content_suggestions.settings` needs to have all plugin settings to avoid loading unnecessary configurations, this way the plugin instantiation could be easier as configuration will exist in the same config file. > Change record: [#3591233](https://www.drupal.org/node/3591233) ### [Validation of unexisting fields on paragraphs actions](https://git.drupalcode.org/project/ai/-/work_items/3571033) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: aiContentSuggestions, category::bug, priority::normal, shouldMove Description: >>> [!note] Migrated issue Reported by: [aaron gil martinez](https://www.drupal.org/user/3605526) Related to !1150 >>> Problem/Motivation When a node form uses Paragraphs, the AI Content Suggestions “Select the field(s) you wish to send to the LLM” list does not update after Paragraphs AJAX actions (collapse/edit/add). This makes it possible to select stale/hidden paragraph fields or miss newly added ones or even display errors because of validation on non-existing fields in the list. Steps to reproduce (required for bugs, but not feature requests) Enable ai_content_suggestio… ### [ai_content_suggestions: On-focus button un-hide rule misses .field-widget-action-widget-button for field--type-string-long](https://git.drupalcode.org/project/ai/-/work_items/3583883) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: aiContentSuggestions, category::bug, priority::minor, shouldMove Description: >>> [!note] Migrated issue Reported by: [jjchinquist](https://www.drupal.org/user/286806) >>> [Tracker] Update Summary: Bug report, AI Suggestions button stays hidden on focus for string_long textarea fields. Short Description: On-focus un-hide CSS rule in ai_content_suggestions misses .field-widget-action-widget-button for field--type-string-long. Check-in Date: 04/09/2026 Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation When the display_on_focus setting is enabled on a field widget action plugin attached to a field--type-string-long fie… ### [Add info about initiative and release differences to project page](https://git.drupalcode.org/project/ai/-/work_items/3586568) State: opened | Updated: 2026-06-26 | 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… ### [Add a deterministic script to auto-generate the providers/operation-types matrix from GitLab](https://git.drupalcode.org/project/ai/-/work_items/3586488) State: opened | Updated: 2026-06-26 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, category::task, documentation Description: ## Description The provider/operation-type matrix at `docs/providers/matris.md` is maintained by hand. Today the only way it stays current is a note at the bottom asking contributors to open a pull request when their provider is missing — so it drifts out of date and is incomplete. We should add a **deterministic** script under `scripts/` that discovers every AI provider plugin published on `git.drupalcode.org`, works out which operation types each one supports, and regenerates `docs/providers/matris.md` from that data. Determinism matters so the script can run in CI / on a schedule and prod… ### [Add metadata (token usage and rate limits) to ChatGenerator in AI API Explorer](https://git.drupalcode.org/project/ai/-/work_items/3586572) State: opened | Updated: 2026-06-26 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | Labels: Is Contextualized, aiApiExplorer, category::task, priority::normal Description: ## Summary The **Chat Generation Explorer** (`ChatGenerator` plugin) in the AI API Explorer should also display the response **metadata** returned by the provider — specifically **token usage** and, when the provider exposes it, **rate limit** information. ## Problem When you run a chat through the explorer, the response object (`\Drupal\ai\OperationType\Chat\ChatOutput`) already carries this metadata, but the explorer throws it away. `ChatOutput` already exposes everything we need: - `getTokenUsage(): \Drupal\ai\Dto\TokenUsageDto` — `input`, `output`, `total`, `reasoning`, `cached` toke… ### [Introduce a modern AI Chatbot frontend library](https://git.drupalcode.org/project/ai/-/work_items/3586571) State: opened | Updated: 2026-06-26 | Author: Bruno Bruno (bbruno) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, why::needsInfo Description: ## Description The current AI Chatbot module is tightly coupled to the DeepChat library. DeepChat does more than render the UI - it also handles the API communication, chat state, and message history. Functionality such as tool calling, conversation history, and thread management is implemented in a DeepChat-specific way, making it difficult to swap in alternative chat interfaces. [assistant-ui](https://www.assistant-ui.com/) was identified as a promising alternative - a React-based component library that supports custom API endpoints and offers significantly easier customization than DeepCha… ### [Add metadata to VectorDBGenerator in AI-API-Explorer](https://git.drupalcode.org/project/ai/-/work_items/3549175) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: Isaac Trogdon (dotist) | Labels: aiApiExplorer, category::task, priority::normal, state::accepted Description: >>> [!note] Migrated issue Reported by: [d0t15t](https://www.drupal.org/user/132353) >>> Problem/Motivation It would be great to see the available metadata in the VDB results, for instance - to add the drupal_long_id. ### [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-26 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | 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… ### [Add Functional Tests for AI CKEditor](https://git.drupalcode.org/project/ai/-/work_items/3477173) State: closed | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative Sprint, aiCkeditor, category::task, needs backport to 1.3.x Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !1302 !1257 >>> Problem/Motivation Add tests that tries out the e2e AI Ckeditor. Add screenshots on failure. Steps to reproduce Proposed resolution Remaining tasks User interface changes API changes Data model changes ### [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-26 | Author: mxh (hauptm) | Assigned: unassigned | Labels: category::feature, priority::minor, state::accepted 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… ### [Tools UI overview page does not load](https://git.drupalcode.org/project/ai/-/work_items/3579979) State: opened | Updated: 2026-06-26 | 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… --- MERGE REQUESTS (24h) --- ### [ai-3586569: ai_ckeditor: Add option to show or hide the "AI Writer" status information](https://git.drupalcode.org/project/ai/-/merge_requests/1728) State: opened | Author: Mukeysh | Branch: 3586569-ai-ckeditor-add-option-to-show-or-hide-the-ai-writer-status-information | 181 diff lines Description: ## Description 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. ## Solution Add a configuration option into `ai_ckeditor.settings` and expose it via UI. ## Testing instructions 1. Enable AI + AI CKEditor. Run `npm ci && npm run build` in modules/ai_cked… ### [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) | Branch: 3586549-improve-ai-ckeditor-ux-when-no-provider-modules-are-installed | 56 diff lines Description: ## Description Improves the UX of `ai_ckeditor` when no AI provider module is installed. Currently, the "AI tools" tab in the CKEditor text format configuration (`/admin/config/content/formats/manage/*`) renders the full plugin settings form even when no provider is available, giving no feedback to the user about why the feature will not work. New users who install `ai_ckeditor` without first setting up a provider are left confused. This MR adds a guard in `AiCKEditor::buildConfigurationForm()` that detects when `AiProviderPluginManager::getDefinitions()` returns empty — the… ### [fix(ai_ckeditor): remove stale toolbar items on uninstall and warn on confirm page](https://git.drupalcode.org/project/ai/-/merge_requests/1731) State: opened | Author: Ricardo Castañeda (cadence96) | Branch: 3586570-uninstalling-ai-ckeditor-leaves-stale-toolbar-items-in-editoreditor-configuration | 108 diff lines Description: ## Description Fixes an issue where uninstalling `ai_ckeditor` left stale toolbar references in existing `editor.editor.*` configuration entities, causing CKEditor 5 text format configuration pages to break. Two changes in `ai_ckeditor.install`: - **`hook_module_preuninstall()`**: Before the module is removed, iterates over all `editor.editor.*` configs and strips the `aickeditor` and `ai_balloon_menu` toolbar items, as well as the `ai_ckeditor_ai` plugin configuration block. - **`hook_form_FORM_ID_alter()` for `system_modules_uninstall_confirm_form`**: Reads the pending modules from the ex… ### [Resolve "Add a deterministic script to auto-generate the providers/operation-types matrix from GitLab"](https://git.drupalcode.org/project/ai/-/merge_requests/1645) State: opened | Author: Marcus Johansson (Marcus_Johansson) | Branch: 3586488-add-a-deterministic-script-to-auto-generate-the-providersoperation-types-matrix-from-gitlab | 1157 diff lines ### [Issue #3586543: Add AI reranking processor for Search API.](https://git.drupalcode.org/project/ai/-/merge_requests/1729) State: opened | Author: Abhisek Mazumdar (abhisekmazumdar) | Branch: 3586543-add-ai-reranking-processor-for-search-api | 617 diff lines Description: ## Description A new Search API processor plugin (`ai_reranker`) that re-orders query results using the `rerank` operation type already in AI Core. The `rerank` operation was added in #3488114 but nothing consumed it for Search API. #3557901 proposed putting reranking in `ai_search`, but reranking is a generic capability. It belongs in the `ai` core module where the operation type itself lives, so it works with any Search API backend (database, Solr, anything), not just the vector backend. **New files:** - `src/Plugin/search_api/processor/AiReranker.php`: `ProcessorPluginBase` plugin runni… ### [Issue #3477173: Add functional tests for AI CKEditor](https://git.drupalcode.org/project/ai/-/merge_requests/1302) State: opened | Author: velmir_taky (root_emarketing) | Branch: 3477173-add-functional-tests-all | 616 diff lines Description: Closes #3477173 ### [Add AICKeditor tests (Target 1.4.x)](https://git.drupalcode.org/project/ai/-/merge_requests/1577) State: merged 2026-06-26 | Author: AKHIL BABU (AkhilBabu) | Branch: 3477173-add-functional-tests-all-1.4.x | 649 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… ### [Added Functional JavaScript Tests](https://git.drupalcode.org/project/ai/-/merge_requests/1257) State: closed | Author: Hrishikesh Dalal (hrishikesh-dalal) | Branch: 3477173-add-functional-tests-for-ckeditor | 319 diff lines Description: Closes #3477173 ### [fix: ai_ckeditor: Add option to show or hide the "AI Writer" status information](https://git.drupalcode.org/project/ai/-/merge_requests/1727) State: closed | Author: Mukeysh | Branch: 3586569-ai-ckeditor-add-option-to-show-or-hide-the-ai-writer-status-information | 15752 diff lines Description: ## Description --- COMMITS (24h) --- - [5c914934](https://git.drupalcode.org/project/ai/-/commit/5c914934931bd40fcb0ddf7631d5b1b5358c1909) Add AICKeditor tests (Target 1.4.x) — AKHIL BABU (2026-06-26T09:21:35.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-26T05:00:05+00:00 to 2026-06-27T05: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). ### [Source case studies from AI Summit Rotterdam](https://git.drupalcode.org/project/ai_initiative/-/work_items/3586557) State: opened | Updated: 2026-06-27 | Author: Paul Johnson (pdjohnson) | Assigned: Rosie Gladden (rgladden) | Labels: AI Marketing, Drupal AI Success Stories, Enterprise AI Summit Description: ## Summary The Enterprise AI Summit is gathering session submissions ready for the event in September. This may surface case studies which are new to us. ## Work Track AI marketing ## Context / Background ## Tasks - [x] Collaborate with @wouters_frederik to gain access to the session submissions - [ ] Use the submissions as an input to case studies for Drupal AI - [ ] Make contact with the originator so that we can enrich the data / invite to webinars / ask them to write an article etc ## Acceptance Criteria - [ ] All new cases are curated - [ ] We are in contact with the creator --- 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-26T05:00:05+00:00 to 2026-06-27T05: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

      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). ### [[Meta] Cover remaining AI operation types with ECA execute actions](https://git.drupalcode.org/project/ai_integration_eca/-/work_items/3585013) State: opened | Updated: 2026-06-26 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Innovation, Road to 1.0.0, automation::error Description: ### Background The AI module exposes ~18 operation types, but this module only ships ECA execute actions for 5: Chat, Embedding, Moderation, Speech to Text, Text to Speech (`src/Plugin/Action/`). This meta tracks adding execute actions for the rest so ECA flows can drive every supported AI operation without custom plugins. ### Scope **Out of scope (deferred):** `ImageAndAudioToVideo` — provider support is minimal. **In scope — one child issue per operation type:** - [Add ECA execute action for Audio to Audio](https://git.drupalcode.org/project/ai_integration_eca/-/work_items/3585002) - [A… ### [Add ECA execute action for Translate Text](https://git.drupalcode.org/project/ai_integration_eca/-/work_items/3585012) State: opened | Updated: 2026-06-26 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Innovation, Road to 1.0.0, category::task Description: ### Problem/Motivation The AI module's `TranslateText` operation type has no corresponding ECA execute action in this module. ECA flows cannot drive `TranslateText` without a custom action plugin. Existing per-operation actions: Chat, Embedding, Moderation, Speech to Text, Text to Speech (`src/Plugin/Action/`). ### Proposed resolution Add `Plugin\Action\TranslateText` extending `AiConfigActionBase`, mirroring `Chat.php`: - Plugin id: `ai_integration_eca_execute_translate_text` - Builds the matching Input class from `Drupal\ai\OperationType\TranslateText\` and dispatches it through the con… --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- (none) ======================================================================== ## [4] 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-26T05:00:05+00:00 to 2026-06-27T05: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: Marcus Johansson (Marcus_Johansson)". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

        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) --- ### [Resolve #3593019 "Add imagetoimage possibilities"](https://git.drupalcode.org/project/ai_provider_openai/-/merge_requests/72) State: merged 2026-06-26 | Author: Marcus Johansson (Marcus_Johansson) | Branch: 3593019-add-imagetoimage-possibilities | 307 diff lines Description: Closes #3593019 --- COMMITS (24h) --- (none) ======================================================================== ## [5] summariseModule:ai_provider_anthropic:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Anthropic Provider (machine name: ai_provider_anthropic) Reporting period: last 24h (2026-06-26T05:00:05+00:00 to 2026-06-27T05: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: Carlos Ospina (camoa)". 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

          Anthropic 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) --- ### [Issue #3590963: Bump SDK constraint and drop method_exists defensive check](https://git.drupalcode.org/project/ai_provider_anthropic/-/merge_requests/28) State: merged 2026-06-26 | Author: Carlos Ospina (camoa) | Branch: 3590963-add-prompt-caching | 1677 diff lines Description: Phase 2 of the Anthropic provider native-SDK work (#3590963): prompt caching admin UI + PDF document input. Builds on Phase 1 (#3572402, merged in `d1e078a1`). Targets `1.3.x`; fast-forward mergeable. ## What this delivers **Prompt caching** - Admin UI: "Enable prompt caching" toggle and TTL selector (5m / 1h), `#states`-gated in the provider settings form. - System prompt sent as a typed `TextBlockParam` with `cache_control` when caching is on (caching a bare string is a no-op; the breakpoint must sit on a content block). - 1h TTL is GA and works without any beta header (verified live). - `… --- COMMITS (24h) --- (none) ======================================================================== ## [6] summariseModule:fireworksai:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Fireworks AI (machine name: fireworksai) Reporting period: last 24h (2026-06-26T05:00:05+00:00 to 2026-06-27T05: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: Marcus Johansson [3]". 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

            Fireworks AI

            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) --- (none) --- COMMITS (24h) --- - [ee2c30ef](https://git.drupalcode.org/project/fireworksai/-/commit/ee2c30ef5b295f812de054b8581c74b1eaafaa51) Fix requirement — Marcus Johansson (2026-06-26T12:52:35.000+02:00) - [b519a9c3](https://git.drupalcode.org/project/fireworksai/-/commit/b519a9c3f06bb5eaba11a8ca2a404c67c2d9a46e) Fix requirement — Marcus Johansson (2026-06-26T12:52:20.000+02:00) - [9071dce2](https://git.drupalcode.org/project/fireworksai/-/commit/9071dce2838aa88ac08b60dd5dfe979031dd98c7) Rerank and use the base class — Marcus Johansson (2026-06-26T12:51:40.000+02:00) ======================================================================== ## [7] summariseModule:mcp_client:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: MCP Client (machine name: mcp_client) Reporting period: last 24h (2026-06-26T05:00:05+00:00 to 2026-06-27T05: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

              MCP Client

              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/mcp_client/-/merge_requests/19) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 180 diff lines Description: Relates to #3601462. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [8] stripNameAttribution:mcp_client ======================================================================== 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 ---

                MCP Client

                Activity in the MCP Client module over the past 24 hours was limited to automated maintenance. A merge request titled Automated Project Update Bot fixes was opened, containing changes from an automated project update run. The MR includes 180 lines of diff and remains open for review.

                No merge requests were merged, no commits were pushed, and no issues saw active discussion during this period.

                How can I help on this project?

                Review the Automated Project Update Bot fixes merge request to validate the proposed changes. Check the issue queue for unassigned issues without patches that could benefit from development work. Test the module with the latest Drupal core release to identify any compatibility issues.

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

                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). ### [Add support for batch embeddings](https://git.drupalcode.org/project/gemini_provider/-/work_items/3589183) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, category::feature, code Description: >>> [!note] Migrated issue Reported by: [a.dmitriiev](https://www.drupal.org/user/3235287) Related to !37 >>> [Tracker] Update Summary: [One-line status update for stakeholders] Check-in Date: MM/DD/YYYY Additional Collaborators: Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation As a follow up to this issue https://git.drupalcode.org/project/ai/-/work_items/3568648 it would be nice to add support of batch embeddings as Gemini models can do that. Proposed resolution Use method batchEmbedContents from Gemini client when EmbeddingsInput conta… --- MERGE REQUESTS (24h) --- ### [Support batch embeddings](https://git.drupalcode.org/project/gemini_provider/-/merge_requests/37) State: opened | Author: Artem Dmitriiev (a.dmitriiev) | Branch: 3589183-add-support-for | 389 diff lines Description: Closes #3589183 --- COMMITS (24h) --- (none) ======================================================================== ## [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-26T05:00:05+00:00 to 2026-06-27T05: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

                  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 --- COMMITS (24h) --- (none) ======================================================================== ## [11] summariseModule:mcp:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Model Context Protocol (machine name: mcp) Reporting period: last 24h (2026-06-26T05:00:05+00:00 to 2026-06-27T05: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

                    Model Context Protocol

                    then use

                    ,

                    ,

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

                      How can I help on this project?

                      " aimed at a developer. Suggest 2-3 concrete technical actions a contributor could take right now. Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, check the data for each issue: - If an issue shows a Related MR with state 'opened', do NOT suggest creating a patch or MR — one already exists. Suggest reviewing it instead. - If all Related MRs for an issue are merged, do NOT suggest reviewing them — they are already done. - If an issue is unassigned with no Related MRs, it is a good candidate to pick up. - Only suggest actions that are genuinely still needed given the current state in the data above. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Automated Drupal 12 compatibility fixes for mcp 1.x-dev](https://git.drupalcode.org/project/mcp/-/work_items/3587790) State: opened | Updated: 2026-06-26 | 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/mcp/-/merge_requests/53) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 254 diff lines Description: Relates to #3587790. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [12] stripNameAttribution:mcp ======================================================================== 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 ---

                      Model Context Protocol

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

                      How can I help on this project?

                      Review the automated Drupal 12 compatibility fixes to verify the changes are appropriate and do not introduce regressions. Test the patched code against Drupal 12 to confirm compatibility. Provide feedback on the MR to help move it toward merge.

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

                      ======================================================================== ## [13] 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-26T05:00:05+00:00 to 2026-06-27T05: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), Ahmad Khalil (ahmad-khalil-imagex), Ben Mullins (bnjmnm), Bálint Kléri (balintbrews), Christian López Espínola (penyaskito), Feliksas Mazeikis (f.mazeikis), Gábor Hojtsy (goba), Kunal Sachdev (kunal.sachdev), Matt Glaman (mglaman), Narendra Singh Rathore (NarendraR), Oleksandr Antonchyk (Anton4yk), Ravi Maniyar (ravi.maniyar.123), Wim Leers (wimleers)". 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-27 | 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… ### [Boolean field values resetting when using Patterns](https://git.drupalcode.org/project/canvas/-/work_items/3591637) State: opened | Updated: 2026-06-26 | Author: Amanda Donnelly (aadownie) | Assigned: unassigned | Labels: Description: When using Patterns in the 1.5 update, boolean values are not staying their set value when using Patterns after content is edited. To reproduce: Add a component that uses a boolean value, set with a default 'true', and a basic text field. In my example this boolean was used to show/hide a section of markup. Create a page with this component added, but set the boolean to 'false', then create a pattern with this layout. Add a new page, and drag the pattern over, which should have this boolean set to 'false' hiding the markup. Edit the text field. When the preview reloads, the formerly hidd… ### [Boolean prop values not retained correctly on SDC components with multiple boolean props](https://git.drupalcode.org/project/canvas/-/work_items/3591697) State: opened | Updated: 2026-06-26 | Author: Joery Lemmens (flyke) | Assigned: unassigned | Labels: Description: This is a recreation of issue [#3492368](https://www.drupal.org/project/experience_builder/issues/3492368) in the experience_builder module so that the issue ends up on the correct module and issue que. Please watch the video in that issue! I am using Drupal 11.3.12 and I'm having an issue with boolean props on both canvas 1.6.0 and latest canvas dev. I have a (card) component with multiple boolean props where example and default are all set to false. I create a card (I dont change any boolean props) and when changing the text content, it seems that all boolean prop widgets are still uncheck… ### [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-26 | 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… ### [Cast transform treats serialized "0" as true for boolean props](https://git.drupalcode.org/project/canvas/-/work_items/3591739) State: opened | Updated: 2026-06-26 | Author: Dirk Hacker (dehacker) | Assigned: unassigned | Labels: Description: **Summary:** * Unchecked Drupal checkboxes serialize as `"0"`. * `transforms.cast` only treats `'false'` as false, then `Boolean(value)`. * `Boolean("0") === true` → unchecked booleans flip to `true` on auto-save when another field changes. **Repro:** 1. Component with two boolean props (e.g. Hero Standard `popup_form` + `ppc_header`). 2. Open in Canvas editor; leave `popup_form` unchecked, toggle `ppc_header`. 3. Observe `popup_form` saved as `true`. **Fix:** Explicit handling when `to === 'boolean'` for `'0'`, `0`, `''`, `null`, `'false'`. ### [Add Code Component prop type for multiline plain text](https://git.drupalcode.org/project/canvas/-/work_items/3591741) State: opened | Updated: 2026-06-26 | Author: Alex Bronstein (effulgentsia) | Assigned: unassigned | Labels: Description: SDCs can have a prop schema of: ``` type: string pattern: "(.|\r?\n)*" ``` to signify a multi-line string. Canvas uses a textarea widget for the content entry for such a prop. The Code Component Editor currently doesn't provide either a dedicated prop type or a setting within the Text prop type for this. ### [Canvas Page Preview Fails After Language Code Update for Existing Translations](https://git.drupalcode.org/project/canvas/-/work_items/3591713) State: opened | Updated: 2026-06-26 | Author: Vipin Mittal (vipin.mittal18) | Assigned: unassigned | Labels: JavaScript, category::bug, priority::normal, state::needsReview Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1304 [fix(Internal HTTP API, Translation): #3591713 Fix Canvas page preview for translated pages when the URL prefix differs from the langcode](https://git.drupalcode.org/project/canvas/-/merge_requests/1304) | State: opened | Author: Christian López Espínola (penyaskito), 251 diff lines Description: When a language code is updated in Language Detection settings, previewing existing translated Canvas pages for that language results in a syntax error. The preview process continues to reference the previous language code instead of the updated one. **Steps to Reproduce** 1. Create or translate a Canvas page into a secondary language. 2. Navigate to Language Detection settings. 3. Update the language code for the translated language. 4. Save the configuration. 5. Open the translated Canvas page and click Preview. **Current Behaviour** - The preview fails and displays a syntax error. - The u… ### [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-26 | 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 t… ### [Fix explanation of lack of Canvas page language support to account for varied use cases](https://git.drupalcode.org/project/canvas/-/work_items/3591740) State: opened | Updated: 2026-06-26 | Author: Gábor Hojtsy (goba) | Assigned: unassigned | Labels: Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1303 [Suggest updated text to account for broader multilingual use case](https://git.drupalcode.org/project/canvas/-/merge_requests/1303) | State: opened | Author: Gábor Hojtsy (goba), 13 diff lines Description: Currently the default language selector setting for Canvas is force-disabled. This is the explanation: `Disabled for Canvas pages. Canvas pages must be created in the site's default language only. Translations are managed through the translation interface against the source-language page, not by creating pages in non-default languages.` But one would not only use Canvas pages in other languages for translations. Site could potentially want Canvas pages in various languages without them ever being translations of each other. A multilingual site does not necessitate content translation of any… ### [Canvas AI - fix deprecated Image import, unsupported package handling, prop/slot name collision, hardcoded error messages, and add slots support](https://git.drupalcode.org/project/canvas/-/work_items/3584136) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative Sprint, AI Innovation, AI Page Generation, ai Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1237 [Issue #3584136: Fix canvas_component_agent prompt bugs (Image import,...](https://git.drupalcode.org/project/canvas/-/merge_requests/1237) | State: opened | Author: Ahmad Khalil (ahmad-khalil-imagex), 1714 diff lines Description: > [!note] Migrated issue > > > > > > Reported by: [subbu94](https://www.drupal.org/user/3513305) > > Related to !907 ### Overview The `canvas_component_agent` system prompt in `ai_agents.ai_agent.canvas_component_agent.yml` contains several bugs that cause the agent to generate invalid or broken code components. These problems were surfaced across four related issues: \[#3584114\], \[#3558216\], \[#3564656\], and \[#3551659\]. This issue consolidates them so they can be fixed together in a single pass over the agent configuration. ### Acceptance criteria When this issue is resolved, the … ### [Add feature flag for content entity reference props](https://git.drupalcode.org/project/canvas/-/work_items/3591711) State: closed | Updated: 2026-06-26 | Author: Bálint Kléri (balintbrews) | Assigned: Bálint Kléri (balintbrews) | Labels: category::task, pageBuilder, priority::normal, state::fixed Description: Content entity reference props are not fully stable yet, so the code editor should only show this prop type when an explicit dev feature flag is enabled. Add a hidden `canvas_dev_er` module. When enabled, Canvas exposes `drupalSettings.canvas.devEntityReferenceMode`. The code editor should show the Content entity reference prop type only when that setting is `true`. Existing components that already use content entity reference props should continue to show that prop type so they remain editable. ### [WSOD AssertionError: assert(!$data instanceof ComponentInputsMapping) in assert() when requesting tmgmt translation job](https://git.drupalcode.org/project/canvas/-/work_items/3591734) State: opened | Updated: 2026-06-26 | Author: Gábor Hojtsy (goba) | Assigned: Narendra Singh Rathore (NarendraR) | Labels: translation Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1296 [3591734: WSOD AssertionError: assert(!$data instanceof ComponentInputsMapping) in assert() when requesting tmgmt translation job](https://git.drupalcode.org/project/canvas/-/merge_requests/1296) | State: opened | Author: Narendra Singh Rathore (NarendraR), 213 diff lines Description: I went to try Canvas 1.7.0 translation today with a brand new install of Drupal CMS Haven. I don't think the issue is due to Haven, so submitting here. I think previously this config form had separate settings under the components for the tree and inputs but that is not an option that I have for some reason, so this is how I have it set up. ![Screenshot 2026-06-26 at 11.29.44.png](https://git.drupalcode.org/-/project/19391/uploads/fe3690f7cf31f5eafd12c4cf6de93f29/Screenshot_2026-06-26_at_11.29.44.png){width="755" height="600"} I have `canvas_dev_translation` enabled and `content|config|inte… ### [Bump drupal-canvas package to 0.4.2](https://git.drupalcode.org/project/canvas/-/work_items/3591694) State: closed | Updated: 2026-06-26 | Author: Harumi Jang (hooroomoo) | Assigned: Harumi Jang (hooroomoo) | Labels: JavaScript, category::task, dependencies, priority::normal ### [Add translation data to code component data provider](https://git.drupalcode.org/project/canvas/-/work_items/3591738) State: opened | Updated: 2026-06-26 | Author: Ben Mullins (bnjmnm) | Assigned: unassigned | Labels: Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1301 [#3591738 add translation data to code component provider](https://git.drupalcode.org/project/canvas/-/merge_requests/1301) | State: opened | Author: Ben Mullins (bnjmnm), 126 diff lines Description: This would make it possible to have a language switcher code component ### [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-26 | Author: Wim Leers (wimleers) | Assigned: Christian López Espínola (penyaskito) | Labels: DX (Developer Experience), Regression, componentSources, data integrity Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1300 [chore(Data model): #3591727 Store each prop's translatability per component version so deleting an optional prop keeps config-defined component trees valid](https://git.drupalcode.org/project/canvas/-/merge_requests/1300) | State: opened | Author: Christian López Espínola (penyaskito), 795 diff lines 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 … ### [Access check when publishing auto-save items needs be performed earlier](https://git.drupalcode.org/project/canvas/-/work_items/3591736) State: opened | Updated: 2026-06-26 | Author: Feliksas Mazeikis (f.mazeikis) | Assigned: Feliksas Mazeikis (f.mazeikis) | Labels: backend, category::bug, internalHttpApi Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1302 [Access check in ApiAutoSaveController::post() should be performed earlier](https://git.drupalcode.org/project/canvas/-/merge_requests/1302) | State: opened | Author: Feliksas Mazeikis (f.mazeikis), 118 diff lines Description: With the changes in !1271 the access check happens too late in the handling of auto-save items publishing request. If a user submits a list to `ApiAutoSaveController::post()` of entities they have no access to, the entities get filtered out in `ApiAutoSaveController::getPublishableAutoSaves()` via: ``` $access = $item['entity']->access('view label', return_as_object: TRUE); ... return $access->isAllowed() && ($item['is_default_translation'] ?? TRUE); ``` This results in a s set of "publishable auto-save items" that misses the entities the user has submitted. This then fail… ### [Refactor away the confusing "dangling component tree" concept](https://git.drupalcode.org/project/canvas/-/work_items/3571785) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: Wim Leers (wimleers) | Labels: AI-accelerated, DX (Developer Experience), category::task, dataModel Description: >>> [!note] Migrated issue Reported by: [wim leers](https://www.drupal.org/user/99777) >>> Overview One of the things that @phenaproxima has expressed multiple times as being very hard to understand for somebody proficient-at-Drupal-but-new-to-Canvas, is Canvas' concept of "dangling component trees". https://git.drupalcode.org/project/canvas/-/work_items/3571116 already got us a good chunk of the way there to eliminating/eradicating this altogether. Proposed resolution Completely eradicate it. User interface changes None. > Related issue: [Issue #3571116](https://www.drupal.org/node/35711… ### [Automate MR review using PHPCS: disallow `\Drupal::service('something')`, require `\Drupal::service(Something::class)` whenever possible, with automatic fixing](https://git.drupalcode.org/project/canvas/-/work_items/3581133) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: Adam G-H (phenaproxima), Wim Leers (wimleers) | Labels: AI-accelerated, Chicago2026, DX (Developer Experience), Novice Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1297 [#3581133: Automate MR review using PHPCS: disallow `\Drupal::service('something')`, require `\Drupal::service(Something::class)` whenever possible, with automatic fixing](https://git.drupalcode.org/project/canvas/-/merge_requests/1297) | State: opened | Author: Wim Leers (wimleers), 4716 diff lines Description: >>> [!note] Migrated issue Reported by: [wim leers](https://www.drupal.org/user/99777) Related to !797 >>> Overview :pray: Let's use the `FQCN::class` wherever we can. Reduces magic, makes it easier to navigate & understand these tests. — yours truly at https://git.drupalcode.org/project/canvas/-/merge_requests/651#note_727491 Proposed resolution Automate this feedback. User interface changes None. > Related issue: [Issue #3575719](https://www.drupal.org/node/3575719) ### [Non-Canvas (foreign) Drupal form textareas rendered inside Canvas are read-only and lose their #default_value](https://git.drupalcode.org/project/canvas/-/work_items/3591737) State: opened | Updated: 2026-06-26 | Author: Oleksandr Antonchyk (Anton4yk) | Assigned: unassigned | Labels: Description: When a Drupal form that is not one of Canvas's own react-hook-form–managed forms is rendered inside the Canvas UI (for example, content loaded into an AJAX modal dialog), its textarea fields render incorrectly in two ways. Canvas componentises such forms through hyperscriptify → DrupalTextArea → TextArea, but withRHF only enhances forms whose formId is page_data_form or component_instance_form (ui/src/components/form/react-hook-form/withRHF.tsx). For any other form, it returns the bare component, so the enhancements that those components depend on are missing. Bug 1 — … ### [CKEditor's source element is not tagged with the active text format inside Canvas, breaking modules that rely on core's editor-attach contract (e.g. ai_ckeditor)](https://git.drupalcode.org/project/canvas/-/work_items/3591735) State: opened | Updated: 2026-06-26 | Author: Oleksandr Antonchyk (Anton4yk) | Assigned: unassigned | Labels: Description: Canvas mounts CKEditor 5 through the React @ckeditor/ckeditor5-react component in ui/src/components/form/components/drupal/DrupalFormattedTextArea.tsx. Because of this, Drupal core's editor.js never runs for these editors. Core's editor.js is what normally sets data-editor-active-text-format on the editor's source element (core/modules/editor/js/editor.js). Any module th… ### [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… ### [Text-based comparison of entities](https://git.drupalcode.org/project/canvas/-/work_items/3591668) State: opened | Updated: 2026-06-26 | Author: Feliksas Mazeikis (f.mazeikis) | Assigned: Feliksas Mazeikis (f.mazeikis), Ravi Maniyar (ravi.maniyar.123) | Labels: Conflict resolution, Needs design, Needs upstream feature, auto-save Description: As part of #3587587 we need to be able to compare entities with conflicts not only using visual preview, but also using text-based side-by-side comparison. This issue adds this functionality for Page entities in Canvas. There will be an MR for BE and an MR for FE of this functionality. Designs and detailed description will be added soon. ### [Translating unpublished page crashes canvas](https://git.drupalcode.org/project/canvas/-/work_items/3591714) State: opened | Updated: 2026-06-26 | Author: Kunal Sachdev (kunal.sachdev) | Assigned: Feliksas Mazeikis (f.mazeikis) | Labels: Conflict resolution, category::bug, pageBuilder, priority::normal Description: **Overview** When a Canvas page has unpublished changes, completing a translation job for that page via the TMGMT breaks the Canvas editor UI, resulting in a 409 Conflict error. **Technical Cause** The problem is when TMGMT saves the translation as complete, it creates a new revision of the canvas page entity, which changes the revision ID. Since the original_hash stored in the auto-save no longer matches the current entity hash, Canvas flags this as a conflict and returns a 409 error. **Steps to reproduce** - Create a canvas page , add title as “Test Page“(do not publish it) - On canvas-ed… ### [Remove workaround in ApiLayoutControllerGetTest::testConfigTranslationAvailabilityLinksAndPermissions()](https://git.drupalcode.org/project/canvas/-/work_items/3591733) State: opened | Updated: 2026-06-26 | Author: Kunal Sachdev (kunal.sachdev) | Assigned: unassigned | Labels: category::task, priority::normal, state::needsReview, v1.x-dev Description: **Overview** There is a workaround to prevent locale's js_alter hook from trying to file_get_contents() the draft JS auto-save URL added in test `ApiLayoutControllerGetTest::testConfigTranslationAvailabilityLinksAndPermissions()` which was added in #3591654 and which also has a @todo to remove this workaround in #3591719 which is closed as a duplicate of #3591729 where the main issue was resolved. Now that the main issue is resolved in #3591729 so we can remove this workaround. ### [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-26 | 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()` … ### [Remove `canvas_dev_cd` flag module](https://git.drupalcode.org/project/canvas/-/work_items/3591732) State: opened | Updated: 2026-06-26 | Author: Feliksas Mazeikis (f.mazeikis) | Assigned: Feliksas Mazeikis (f.mazeikis), Ravi Maniyar (ravi.maniyar.123) | Labels: 1.x-dev, Conflict resolution, auto-save, internalHttpApi Description: In !1290 we have put the conflict detection behind the `canvas_dev_cd` module. All the other MRs in the %"Review of changes and Conflict resolution" milestone will follow suit. Once the all of the MvP items are reviewed, approved and merged - we can remove the flag. ### [Canvas AI: In-progress chat messages disappear when editing page metadata during an active run](https://git.drupalcode.org/project/canvas/-/work_items/3591731) State: opened | Updated: 2026-06-26 | Author: Abhishek Dhariwal (adaptative) | Assigned: Abhishek Dhariwal (adaptative) | Labels: state::active Description: Follow-up to #3558257. ### Problem While the AI agent is running, editing the page title or meta description removes the in-progress status messages from the chat UI. ### Steps to reproduce 1. Install Canvas AI on Drupal CMS 2 (starter recipe). 2. Open a new page and open the chatbot. 3. Prompt: `Add an "Our Plans" section for SportsFlix, a sports streaming platform`. 4. While it is still running, type in the description or title field. 5. The in-progress messages disappear from the chat UI. ### Root cause The in-progress status bubble is added imperatively in `startPolling()` via `chatEl.a… ### [Changing Metadata Clears Canvas AI Prompt Text](https://git.drupalcode.org/project/canvas/-/work_items/3558257) State: opened | Updated: 2026-06-26 | 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… --- MERGE REQUESTS (24h) --- ### [fix(deps): update npm minor and patch](https://git.drupalcode.org/project/canvas/-/merge_requests/1238) State: opened | Author: **** (project_19391_bot_cb443e60680723bba08a5351bf595251) | Branch: renovate/npm-minor-and-patch | 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](… ### [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. ### [feat(Drush): #3585531 Add commands to list, audit, and generate Canvas components](https://git.drupalcode.org/project/canvas/-/merge_requests/937) State: opened | Author: Matt Glaman (mglaman) | Branch: 3585531-provide-a-drush | 498 diff lines Description: ## Overview Adds Drush commands that mirror the component management screens at `/admin/appearance/component` and `/admin/appearance/component/status`. These give site builders and CI pipelines a scriptable way to inventory, audit, and regenerate Canvas components without the UI. ## Commands | Command | Alias | Purpose | |---------|-------|---------| | `canvas:component:list` | `canvas-component-list` | Inventory: every component config entity with its source, status, version count, and usage count. | | `canvas:component:status` | `canvas-component-status` | Compatibility verdict per compon… ### [Issue #3591737: Make foreign Drupal form textareas editable in Canvas by...](https://git.drupalcode.org/project/canvas/-/merge_requests/1299) State: opened | Author: Oleksandr Antonchyk (Anton4yk) | Branch: 3591737-non-canvas-foreign-drupal-form-textareas-rendered-inside-canvas-are-read-only-and-lose-their-default-value | 44 diff lines ### [Issue #3591735: AI CKEditor text format](https://git.drupalcode.org/project/canvas/-/merge_requests/1298) State: opened | Author: Oleksandr Antonchyk (Anton4yk) | Branch: 3591735-ckeditors-source-element-is-not-tagged-with-the-active-text-format-inside-canvas-breaking-modules-that-rely-on-cores-editor-atta | 23 diff lines ### [AI-generated.](https://git.drupalcode.org/project/canvas/-/merge_requests/797) State: closed | Author: Wim Leers (wimleers) | Branch: 3581133-automate-review-drupal-service-class-constant | 1259 diff lines Description: Closes #3581133 ### [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 | 865 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… ### [feat(Conflict detection): #3587526 "Client side prevention of publishing"](https://git.drupalcode.org/project/canvas/-/merge_requests/1018) State: opened | Author: Ravi Maniyar (ravi.maniyar.123) | Branch: 3587526-prevention-of-publishing | 200 diff lines Description: Client side changes for https://git.drupalcode.org/project/canvas/-/work_items/3587526+ This MR adds conflict handling for pending auto-save changes so users cannot publish changes that have unresolved conflicts. When a pending change is marked as conflicted, the review UI now: - Shows a conflict warning in the unpublished changes panel - Disables selection for conflicted changes - Excludes conflicted changes from Select All - Still allows non-conflicted changes to be selectively published The pending changes API response is also normalized so the frontend can handle both normal pending ch… ### [Draft: feat(Notifications, Conflict detection): #3591723 Add conflict notification...](https://git.drupalcode.org/project/canvas/-/merge_requests/1295) State: opened | Author: Ravi Maniyar (ravi.maniyar.123) | Branch: 3591715-use-notifications-to-inform-users-about-the-detected-conflicts | 1040 diff lines Description: Adds conflict notification support for detected file conflicts. * Shows a toast when pending auto-saves contain conflict items. * Keeps this separate from **`/canvas/api/v0/notifications`**. * Stores conflict notification state in localStorage to avoid repeated toast spam. * Shows the toast again if the conflict content changes. * Adds the conflict item to Activity Center and badge count. * “Resolve conflicts” opens the Review Changes conflict UI without page reload. * Uses existing color/spacing tokens for the toast styling. ## Testing instructions *  Trigger a conflict where **`/canvas/ap… ### [#3591733"Remove workaround in ApiLayoutControllerGetTest::testConfigTranslationAvailabilityLinksAndPermissions()"](https://git.drupalcode.org/project/canvas/-/merge_requests/1294) State: opened | Author: Kunal Sachdev (kunal.sachdev) | Branch: 3591733-remove-workaround-in-apilayoutcontrollergettesttestconfigtranslationavailabilitylinksandpermissions | 34 diff lines ### [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 | 1053 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… --- COMMITS (24h) --- (none) ======================================================================== ## [14] 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-26T05:00:05+00:00 to 2026-06-27T05: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: Kristen Pol (kepol), Matt Glaman (mglaman) [1], Tamas Balog (tbalog)". 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). ### [Sprint 12 CCC roadmap updates, sprint planning, and issue triage](https://git.drupalcode.org/project/ai_context/-/work_items/3586277) State: closed | Updated: 2026-06-27 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Description: ## Problem/Motivation Prioritize backlog items for the sprint to align with roadmap, releases, and project needs. --- ## Proposed resolution Groom sprint issues --- ## Target date or deadline 13 to 26 June 2026 --- ## Remaining tasks - Go through backlog and prioritize - Create new issues as needed - Identify what goes into sprint - Tune mid-sprint as needed - Update roadmap meta as needed --- ## Related issues - [#3567798: [META] CCC MVP 1.0 roadmap](https://www.drupal.org/project/ai_context/issues/3567798) - [#3586182: [META] CCC beta3 release planning](https://www.drupal.org/… ### [Move scheduler feature to submodule or progressive enhancement](https://git.drupalcode.org/project/ai_context/-/work_items/3577429) State: closed | Updated: 2026-06-27 | Author: drupalbot | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 10 Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !178 [Issue #3577429: Make Scheduler an optional progressive feature.](https://git.drupalcode.org/project/ai_context/-/merge_requests/178) | State: merged 2026-06-27 | Author: Matt Glaman (mglaman), 1163 diff lines Description: >>> [!note] Migrated issue Reported by: [kristen pol](https://www.drupal.org/user/8389) Related to !92 >>> [Tracker] Update Summary: [One-line status update for stakeholders] Check-in Date: MM/DD/YYYY Blocked by: [#XXXXXX] (New issues on new lines) Additional Collaborators: @username1, @username2 Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Follow-up to: #3569967: [Discuss] Figure out which CCC features can be optional for MVP We are trying to reduce the number of dependencies for ai_context. The scheduler is one dependency that not e… ### [Allow subcontext scope to override parent scope](https://git.drupalcode.org/project/ai_context/-/work_items/3586218) State: opened | Updated: 2026-06-27 | Author: Kristen Pol (kepol) | Assigned: unassigned | 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 ### [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-27 | 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… ### [CCC beta3 release planning](https://git.drupalcode.org/project/ai_context/-/work_items/3586182) State: opened | Updated: 2026-06-27 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 10 Description: ## Problem/Motivation Planning issue for beta3 release See the [milestone](https://git.drupalcode.org/project/ai_context/-/milestones/5#tab-issues ) for all issues. Key must have issues are listed here. --- ## Proposed Resolution **Many issues were already closed and noted here:** - #3567798: META CCC MVP 1.0 roadmap - #3577644: CCC beta1 release planning - #3585902: CCC beta2 release planning **These are the ones below have been the focus since 11 May 2026 for beta3.** --- ### Must haves _Note: Ones marked with `(*)` could be done in beta4._ #### Blocked - N/A #### Todo - #3586… ### [UX improvements on new context listing page](https://git.drupalcode.org/project/ai_context/-/work_items/3586274) State: opened | Updated: 2026-06-27 | 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… ### [Avoid Full Published-ID Scans Before Scope Prefiltering](https://git.drupalcode.org/project/ai_context/-/work_items/3586206) State: opened | Updated: 2026-06-27 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 10 Description: ## Problem/motivation Follow-up to: #3586202 _**Verify this is still an issue and the solution approach before proceeding**_ `AiContextSelector::getPrefilteredPublishedItemIds()` loads all published item IDs before applying `AiContextScopeIndexService::getItemIdsByScope()`. That means scoped agent selection can still begin with a full-catalog ID query and a large in-memory ID array, even though the scope index exists to narrow the candidate set. This should be fixed before RC1 because the common subscribed-agent path should scale with the matching scope set, not the total published cont… ### [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-27 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !195 [Issue #3586276: Rename entity bundle and target entity scope plugins for better DX](https://git.drupalcode.org/project/ai_context/-/merge_requests/195) | State: opened | Author: Tamas Balog (tbalog), 271 diff lines Description: ## Problem/solution Follow up to: #3586148+s The naming of the entity bundle and target entity scope plugins is confusing. ## Solution **AiContextScopeEntityBundle** Rename Entity Bundle => Entity Type at a code-level because there are bundleless content entities. Label: Entity Types Description: Apply this context to every entity of a chosen type, for example all Article nodes, every Document media item, or every Canvas page. Choose this when the context is true for the whole type, not a single item. **AiContextScopeTargetEntity** Rename Target Entity => Entity Item because target… ### [CCC beta / pre-rc1 community testing](https://git.drupalcode.org/project/ai_context/-/work_items/3586234) State: opened | Updated: 2026-06-27 | 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… ### [[Meta] Fix CCC issues based on AI Best Practices results](https://git.drupalcode.org/project/ai_context/-/work_items/3586298) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/motivation Follow-up to: #3586258+s Ran AI Best Practices against ai_context and found some things that need fixing: GPT 5.5 doc pulling out all the actionable things: [ai-context-actionable-fix-plan.md](https://git.drupalcode.org/-/project/191993/uploads/c3b583782d3be83fde707399a020b762/ai-context-actionable-fix-plan.md) ## Solution GPT 5.5 assessment: For RC1, I’d only block on items that affect **public API, config shape/defaults, installability, or release expectations**. Most accessibility, render-cache, and UI/test cleanup can happen after RC1 as bug/UX fixes. ### Sho… ### [Clean up CCC test and documentation consistency before rc1](https://git.drupalcode.org/project/ai_context/-/work_items/3586299) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/motivation Follow-up to: #3586258+s Parent: #3586298+s **7. Test Quality And Test Documentation** **Priority:** Medium **Why group these together:** These fixes all improve test reliability and signal. They can be split further if the test changes become large. Includes: - Context prefix default alignment. - `getManageUrl()` docs update. - Optional `hook_help()` decision/follow-up. - `tests/README.md` environment guidance. ## Solution ### 7.1 Make integration-test process metadata consistent **Files:** - `tests/README.md` - Kernel, Functional, and FunctionalJavascript … ### [Clean up CCC accessible interactive links and external links](https://git.drupalcode.org/project/ai_context/-/work_items/3586301) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/motivation Follow-up to: #3586258+s Parent: #3586298+s **2. Accessible Interactive Links And External Links** **Priority:** High **Why group these together:** These are all link-rendering issues. Fixing them together allows one consistent pattern for render-array links, new-tab warnings, and link styling. Includes: - List-builder revisions operation cacheable access result. - Revision UI boolean access checks. ## Solution ### 2.1 Replace interactive links embedded in `#markup` **Files:** - `src/Form/AiContextAgentForm.php` - `src/Form/AiContextAgentsForm.php` - `src/Pl… ### [Clean up CCC tooltip, truncation, and icon-only content](https://git.drupalcode.org/project/ai_context/-/work_items/3586302) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/motivation Follow-up to: #3586258+s Parent: #3586298+s **3. Tooltip, Truncation, And Icon-Only Content** **Priority:** High to Medium **Why group these together:** These UI patterns all expose important information through `data-ai-tooltip`, truncation, or visual icons. They should be reviewed as one accessibility pass. Includes: - Replace links in `#markup`. - Add new-tab accessible warnings and `rel`. - Fix CSS-only external-link indicator assumptions. ## Solution ### 3.1 Make tooltip-dependent content available without hover **Files:** - `templates/ai-context-pill-l… ### [Clean up CCC JavaScript filter feedback](https://git.drupalcode.org/project/ai_context/-/work_items/3586303) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/motivation Follow-up to: #3586258+s Parent: #3586298+s **4. JavaScript Filter Feedback** **Priority:** High **Why group these together:** Both filters implement similar client-side table filtering and should expose the same accessible feedback pattern. Includes: - Pill-list overflow accessible text. - Truncated description accessible text. - Icon-only indicators. - Manual assistive technology check for `ai/ai_global` tooltip behavior. ## Solution ### 4.1 Announce filtered result counts **Files:** - `js/ai_context_items_filter.js` - `js/ai_context_agents.js` **Problem:… ### [Clean up CCC form and table accessibility cleanup](https://git.drupalcode.org/project/ai_context/-/work_items/3586304) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/motivation Follow-up to: #3586258+s Parent: #3586298+s **5. Form And Table Accessibility Cleanup** **Priority:** Medium **Why group these together:** These are smaller Form API and admin UI accessibility improvements. They can be handled in one cleanup issue. Includes: - `Drupal.announce()` result counts for both JS filters. - Tests for filter announcements if feasible. ## Solution ### 5.1 Replace disabled read-only selects with text **File:** - `src/Form/AiContextAgentForm.php` **Problem:** Read-only states such as unpublished/global inclusion are rendered as disabl… ### [Clean up CCC documentation and API consistency](https://git.drupalcode.org/project/ai_context/-/work_items/3586305) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/motivation Follow-up to: #3586258+s Parent: #3586298+s **6. Documentation And API Consistency** **Priority:** High to Medium **Why group these together:** These are low-risk docs/code consistency fixes that prevent contributors from copying stale API names or relying on a fallback that differs from install defaults. Includes: - Disabled select replacements. - Help list render arrays. - Table captions. - Emoji warning cleanup. ## Solution ### 6.1 Align the default context prefix **Files:** - `config/install/ai_context.settings.yml` - `src/EventSubscriber/AiContextSystem… ### [Clean up CCC configuration policy checks](https://git.drupalcode.org/project/ai_context/-/work_items/3586306) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/motivation Follow-up to: #3586258+s Parent: #3586298+s **8. Configuration Policy Checks** **Priority:** Low to Medium **Why group these together:** These are not confirmed bugs. They should be handled as maintainer decisions or reproducibility checks before code changes. Includes: - Reproduce or dismiss simple config dependency concerns. - Confirm Scheduler dependency policy. ## Solution ### 8.1 Verify simple install config dependencies **Files:** - `config/install/ai_context.settings.yml` - `config/install/ai_context.agents.yml` - `config/install/ai_context.scope_sett… ### [Clean up CCC cacheability and access metadata](https://git.drupalcode.org/project/ai_context/-/work_items/3586300) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/motivation Follow-up to: #3586258+s Parent: #3586298+s **1. Cacheability And Access Metadata** **Priority:** High **Why group these together:** These fixes all involve Drupal render/cacheability metadata and access-result cache contexts. They should be reviewed together to avoid fixing one stale-cache path while leaving related cacheability gaps. Includes: - `AiContextOverviewController` cache metadata. - Duplicate overview query cleanup. - `AiContextRenderer` settings cache dependency. ## Solution ### 1.1 Add cache metadata to the overview page **Files:** - `src/Contr… ### [Test AI Best Practices skills on AI Context codebase](https://git.drupalcode.org/project/ai_context/-/work_items/3586258) State: closed | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | 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… ### [Add warning on subcontext edit form if parent is unpublished](https://git.drupalcode.org/project/ai_context/-/work_items/3586297) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !196 [Issue #3586297: Add warning on subcontext edit form if parent is unpublished.](https://git.drupalcode.org/project/ai_context/-/merge_requests/196) | State: opened | Author: Kristen Pol (kepol), 197 diff lines Description: ## Problem/motivation Follow-up to: #3586264+s You can unpublish a parent context item while having published subcontext items. ## Solution Show a warning. ## Acceptance criteria - [ ] If parent published and subcontext unpublished, do not show warning. - [ ] If parent unpublished and subcontext unpublished, do not show warning. - [ ] If parent published and subcontext published, do not show warning. - [ ] If parent unpublished and subcontext published, show warning. ### [[Discuss] Moderation status of subcontext vs parent context items](https://git.drupalcode.org/project/ai_context/-/work_items/3586264) State: closed | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !193 [Issue #3586264: Show warning when subcontext parent is unpublished.](https://git.drupalcode.org/project/ai_context/-/merge_requests/193) | State: closed | Author: Kristen Pol (kepol), 204 diff lines 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) ### [hook_ai_context_scope_values_alter() is not honored in scope value forms](https://git.drupalcode.org/project/ai_context/-/work_items/3586246) State: closed | Updated: 2026-06-26 | Author: Joshua Fernandes (joshua1234511) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 11 Description: ## Problem/Motivation While integrating ai_context into the AI Empathy Evaluation module (#3583739, built on the convenience API from #3584838), the main friction was extending scope values. A downstream module that wants to add a custom value — e.g. an "empathy_evaluation" use case — has no working extension point. hook_ai_context_scope_values_alter() looks like the intended mechanism, but it is only invoked in AiContextScopeManager::getAllScopeValues(), and nothing in the module consumes getAllScopeValues(). The scope subscription UI (AiContextAgentForm) and the context item form (AiContex… ### [`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-26 | 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. -… ### [Question about "Subcontext type = Conditional - included based on relevance"](https://git.drupalcode.org/project/ai_context/-/work_items/3586149) State: closed | Updated: 2026-06-26 | Author: Michael Anello (ultimike) | Assigned: unassigned | Labels: AI Initiative Sprint, category::support, priority::normal, state::fixed 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 ### [Inject context into ai_ckeditor requests](https://git.drupalcode.org/project/ai_context/-/work_items/3581955) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: >>> [!note] Migrated issue Reported by: [jessehs](https://www.drupal.org/user/620440) Related to !116 >>> Problem/Motivation The ai_context module cannot inject scope-matched context items into ai_ckeditor AI requests because ai_ckeditor bypasses the ai_agents pipeline (and its BuildSystemPromptEvent) entirely — it calls the AI provider directly in its own streaming controller. There is no event or hook point for ai_context to intercept. This issue is the ai_context companion to the ai_ckeditor entity context and event extensibility work tracked in the drupal/ai module issue queue. … ### [[Discuss] Context scope matching semantics: additive OR, filters, and UX clarity](https://git.drupalcode.org/project/ai_context/-/work_items/3586196) State: closed | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 10 Description: ## Problem/motivation Follow-up to: #3586195 Scope subscriptions are additive. If you subscribe to use case = "working with text" and tag = "campaign", you will get context items that are scoped to either of these. Meaning, the context item doesn't need *both* of them to be relevant. ## Solution - Review existing docs and update as needed - Review UI text and consider clarifying this to the user ### [Document supported vs internal CCC APIs](https://git.drupalcode.org/project/ai_context/-/work_items/3586241) State: closed | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Description: ## Summary Follow-up to: #3586169 AI Context needs a module-wide developer doc that defines the stable public surface vs internal implementation details. Issue `#3586162` documents the **selection extension model** (pipeline events, no service decoration), but that covers only one slice of the module. **Goal:** Add a clear public/internal boundary in developer docs so contrib and site builders know what they can rely on without reading selector internals. ## Solution **Public (document as supported):** - `AiContextRequestFactory` and `AiContextRequest` / `AiContextResult` - Selector pipe… ### [Provide test context items for testing CCC](https://git.drupalcode.org/project/ai_context/-/work_items/3586244) State: closed | Updated: 2026-06-26 | Author: Michael Anello (ultimike) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Description: ## Problem/motivation **Note that this issue evolved from what Mike was thinking (context items you could start with and tweak) to dummy/test context items to play with. The latter was implemented in this issue already, so the title has been updated, and we'll create a new issue for the former feature.** ### Original title Provide example context items ### Original problem/motivation It would be really helpful to provide (optional) example context items for this module. There is a mention of this in #3586175, but I wanted to open a separate issue for it because it might make sense to pr… ### [CCC beta3 QA](https://git.drupalcode.org/project/ai_context/-/work_items/3586296) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/Motivation Need a QA script for beta 3 to go through and test before the release ## Proposed resolution Create script with at least all major features covered ## Target date or deadline **6 July 2026** ## Remaining tasks - Create script - Go through QA script --- ## AI usage (if applicable) - [ ] AI Assisted Issue This issue was generated with AI assistance, but was reviewed and refined by the creator. - [ ] AI Assisted Code This code was mainly generated by a human, with AI autocompleting or parts AI generated, but under full human supervision. - [ ] AI Generate… ### [CCC beta2 QA](https://git.drupalcode.org/project/ai_context/-/work_items/3586156) State: closed | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 9 Description: > [!note] > Migrated issue > Migrated from issue #3577669 > Reported by: [kristen pol](https://www.drupal.org/user/8389) --- ## Tracker **Update Summary:** [One-line status update for stakeholders] **Check-in Date:** MM/DD/YYYY **Blocked by:** - [#XXXXXX](https://www.drupal.org/project/ai_context/issues/XXXXXX) **Additional Collaborators:** @username1, @username2 _Metadata is used by the [AI Tracker](https://www.drupalstarforge.ai/). Docs and additional fields [here](https://www.drupalstarforge.ai/ai-dashboard/docs)._ --- ## Problem/Motivation Need a QA script for beta… ### [Create CCC beta3 release](https://git.drupalcode.org/project/ai_context/-/work_items/3586295) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ### Problem/Motivation Create CCC beta3 release. Tag: `1.0.0-beta3` ### Proposed resolution Create the release once at least the must-haves are done here: - #3586182+s - [beta3 milestone](https://git.drupalcode.org/project/ai_context/-/milestones/5#tab-issues) ### Target date or deadline 6 July 2026 ### Remaining tasks - Wait on must-haves - Tag code - Create the release in UI - Celebrate! ### AI usage (if applicable) - [ ] AI Assisted Issue This issue was generated with AI assistance, but was reviewed and refined by the creator. - [ ] AI Assisted Code This code was mainly … ### [CCC beta3 codebase review (pre-release)](https://git.drupalcode.org/project/ai_context/-/work_items/3586294) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/motivation Beta3 will be released shortly. We continually need to check the codebase as it changes for potential security issues, performance issues, and any pre-rc1 features/apis that need to be addressed. ## Solution Run AI checks against the codebase to identify for pre-rc1 and post-1.0: - Important performance issues - Important feature/API gaps - Security issues (major issues will not be reported here) ## Next steps - Run security review - Run performance review - Run api/feature review - Attach findings for here (not major security issues) - Create follow-up issues as ne… ### [Create CCC beta2 release](https://git.drupalcode.org/project/ai_context/-/work_items/3585920) State: closed | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 9 Description: >>> [!note] Migrated issue Reported by: [kristen pol](https://www.drupal.org/user/8389) >>> [Tracker] Update Summary: [One-line status update for stakeholders] Check-in Date: MM/DD/YYYY Blocked by: [#XXXXXX] (New issues on new lines) Additional Collaborators: @username1, @username2 Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Create CCC beta2 release Tag: 1.0.0-beta2 Proposed resolution Create the release once at least the must-haves are done here: #3585902: CCC beta2 release planning Target date or deadline 4 May 2026 Remaining tasks … ### [CCC beta2 codebase review](https://git.drupalcode.org/project/ai_context/-/work_items/3586202) State: closed | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 9 Description: ## Problem/motivation Beta2 will be released shortly. We continually need to check the codebase as it changes for potential security issues, performance issues, and any pre-rc1 features/apis that need to be addressed. ## Solution Run AI checks against the codebase to identify for pre-rc1 and post-1.0: - Important performance issues - Important feature/API gaps - Security issues (these will not be reported here) ## Next steps - Run security review - Run performance review - Run api/feature review - Attach findings for here (not security) - Create follow-up issues as needed ### [[Discuss] Add boundaries / exclusions to scope plugins](https://git.drupalcode.org/project/ai_context/-/work_items/3586197) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Innovation, AI Sprint 10, AI Sprint 11 Description: ## Problem/motivation Follow-up to: #3586195 Boundaries / exclusions were discussed quite a bit in the past, but hasn't been implemented yet. Example context item: - Tone and voice - Scope - Use case = Writing Words - Entity bundle = exclude for Support Notes (content type) Translation: The context will be applicable to any agent subscription with use case = writing words unless it's a node that's a Support Notes content type ## Solution Add an exclusion option for each scope item and bake that into the logic Could be a dropdown per scope item: - None (neutral/default) - Include… ### [Sprint 13 CCC roadmap updates, sprint planning, and issue triage](https://git.drupalcode.org/project/ai_context/-/work_items/3586293) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/Motivation Prioritize backlog items for the sprint to align with roadmap, releases, and project needs. --- ## Proposed resolution Groom sprint issues --- ## Target date or deadline 27 to 10 July 2026 --- ## Remaining tasks - Go through backlog and prioritize - Create new issues as needed - Identify what goes into sprint - Tune mid-sprint as needed - Update roadmap meta as needed --- ## Related issues - [#3567798: [META] CCC MVP 1.0 roadmap](https://www.drupal.org/project/ai_context/issues/3567798) - [#3586182: [META] CCC beta3 release planning](https://www.drupal.org/… ### [Evaluate Annotations module and how it might work with CCC](https://git.drupalcode.org/project/ai_context/-/work_items/3586268) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Innovation, AI Sprint 13, blocker::stable Description: ## Problem/motivation The new [Annotations module](https://www.drupal.org/project/annotations) has overlap with CCC. ### Video From NikLP: No demo videos yet but how y'all feel about a gen AI video outlining my new module suite? :smiling_face_with_tear: https://www.linkedin.com/posts/niklepage_drupal-activity-7469809314463891456-j8u8/ ### Nik's integration approach [ai_context-local.patch](https://git.drupalcode.org/-/project/191993/uploads/5591cdf6801c901c1d6bc021f4975b60/ai_context-local.patch) [adr-ai-context-provider.md](https://git.drupalcode.org/-/project/191993/uploads/75577ae14… ### [Update CCC overview page with hide option and new wording](https://git.drupalcode.org/project/ai_context/-/work_items/3586211) State: closed | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 10 Description: Follow up to: #3573715 ## Problem/motivation 1. Right now you can disable showing the overview page by going to the general settings. It is useful to be able to also hide it when you are on the page and then the Context Items page because the main page. 2. Also, the text on the page isn't that user friendly. ## Solution 1. Add a "Hide this overview" link or button on the page. We will keep the option on the general settings if they want to add it back. 2. Change the welcome text to something like: **Context Control Center** Context Items are reusable pieces of information that your AI … ### [Handle the case when scope plugin values are no longer available](https://git.drupalcode.org/project/ai_context/-/work_items/3586145) State: closed | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 9 Description: **Problem:** Scope values can disappear after context items or agents have already selected them. For example: - A context item targets `node:1234`, then that node is deleted. - A context item or agent subscribes to the `hr` site section, then that site section is removed. - A context item or agent uses the `foobar` AI context tag, then that tag term is deleted. When this happens, the module should gracefully remove stale values from stored context item scope, agent scope subscriptions, and any related selection indexes. Target entity references should also be removed when the target entity… ### [Clean up follow-ups from target entity decoupling review](https://git.drupalcode.org/project/ai_context/-/work_items/3586082) State: closed | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 10 Description: >>> [!note] Migrated issue Reported by: [kristen pol](https://www.drupal.org/user/8389) >>> **Problem/Motivation** There was out-of-scope feedback on: #3577428 Feedback (PDF) Feedback (MD) **Description:** Follow up on the non-blocking items identified during the target entity / DER decoupling review. The MR made `dynamic_entity_reference` optional successfully, but a few cleanup tasks remain to reduce optional dependency coupling, improve documentation, and tighten safer render/input patterns. **Tasks:** - Remove the `DynamicEntityReferenceItem` import/reference from `AiContextItem:… --- MERGE REQUESTS (24h) --- ### [Issue #3586274: Merge Use cases/Scope columns and add cascading scope filter](https://git.drupalcode.org/project/ai_context/-/merge_requests/184) State: opened | Author: Matt Glaman (mglaman) | Branch: 3586274-issue-branch | 1135 diff lines Description: ## Description Implements the finalized UX from the 17 June review (see issue), following up #3586219. **Columns** - Merge the **Use cases** and **Scope** columns into a single **Scopes** column. Pills are ordered as on the edit page (scope plugins are weight-sorted, so Use Cases lead). **Filters** - Remove the standalone **Use cases** filter. - Replace the single scope filter with a cascade: - First select: scope name (ordered as the edit page), defaulting to **All scopes**. - Second select: values for the chosen scope, defaulting to **All**. With "All scopes" selected it lists every… --- COMMITS (24h) --- - [fdb5b4a0](https://git.drupalcode.org/project/ai_context/-/commit/fdb5b4a0f9e81ace3dce7fc36d1bf1976de74c22) Issue #3577429: Make Scheduler an optional progressive feature. — Matt Glaman (2026-06-27T02:11:36.000+00:00) ======================================================================== ## [15] summariseModule:ai_search:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI Search (machine name: ai_search) Reporting period: last 24h (2026-06-26T05:00:05+00:00 to 2026-06-27T05: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-27 | 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) ======================================================================== ## [16] 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-26T05:00:05+00:00 to 2026-06-27T05: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: 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). ### [Field Widget Button labels are not translatable via UI](https://git.drupalcode.org/project/field_widget_actions/-/work_items/3578824) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: category::bug, priority::normal, state::accepted Description: >>> [!note] Migrated issue Reported by: [fago](https://www.drupal.org/user/16747) >>> [Tracker] Update Summary: Field Widget Button labels are not translatable via UI Short Description: Button labels in field widget actions are configured via entity-form-displays. However, entity form displays have no UI for configuring translations, thus, there is no dedicated page and no entry at /admin/config/regional/config-translation Check-in Date: MM/DD/YYYY Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem Button labels in field widget actions are configured vi… --- MERGE REQUESTS (24h) --- ### [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) | Branch: 3578204-support-for-checkboxes-and-radio-buttons | 433 diff lines Description: Closes #3578204 --- COMMITS (24h) --- (none) ======================================================================== ## [17] 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-26T05:00:05+00:00 to 2026-06-27T05: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)". 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) --- ### [feat: #3582452 Add guardrail set selection to ai_search_block](https://git.drupalcode.org/project/ai_search_block/-/merge_requests/44) State: opened | Author: Abhisek Mazumdar (abhisekmazumdar) | Branch: 3582452-add-guardrail-set | 800 diff lines Description: By: nikro Closes #3582452 --- COMMITS (24h) --- (none) ======================================================================== ## [18] summariseModule:langfuse:developer ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Langfuse (machine name: langfuse) Reporting period: last 24h (2026-06-26T05:00:05+00:00 to 2026-06-27T05: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

                                Langfuse

                                then use

                                ,

                                ,

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

                                  How can I help on this project?

                                  " aimed at a developer. Suggest 2-3 concrete technical actions a contributor could take right now. Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, check the data for each issue: - If an issue shows a Related MR with state 'opened', do NOT suggest creating a patch or MR — one already exists. Suggest reviewing it instead. - If all Related MRs for an issue are merged, do NOT suggest reviewing them — they are already done. - If an issue is unassigned with no Related MRs, it is a good candidate to pick up. - Only suggest actions that are genuinely still needed given the current state in the data above. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). (none) --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/langfuse/-/merge_requests/5) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 179 diff lines Description: Relates to #3599498. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [19] stripNameAttribution:langfuse ======================================================================== 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 ---

                                  Langfuse

                                  The Langfuse module saw automated maintenance activity during this period. A merge request titled Automated Project Update Bot fixes was opened, containing 179 lines of diff generated by the Project Update Bot. The MR is currently awaiting review and has not yet been merged.

                                  No issues were updated, no commits were pushed, and no other merge requests were merged during the reporting period. The automated fixes represent the only active development work in the queue at this time.

                                  How can I help on this project?

                                  • Review the open Automated Project Update Bot fixes merge request to validate the automated changes and help move it toward merge.
                                  • Test the module with recent Drupal core versions to identify any compatibility issues or bugs that need attention.

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

                                  ======================================================================== ## [20] 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] Batch embeddings for improved indexing performance (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3568648 [2] Add interactive refinement capability to Field Widget Actions (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586468 [3] Uninstalling ai_ckeditor leaves stale toolbar items in editor.editor.* configuration (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586570 [4] Support the `ai_json_schema` element inside off-canvas dialogs (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586536 [5] Field Widget Button labels are not translatable via UI (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3567027 [6] Tone of voice CKEditor Plugin does not use the translated version of the linked taxonomy (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586573 [7] Add ai_budget_control to the ecosystem / related modules list (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3583958 [8] Suggest Tags automator should work with Tagify (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3536912 [9] Document the AI module ecosystem: a categorized list of related modules with links and summaries (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586482 [10] Save AI Content Suggestion plugin settings inside ai_content_suggestions.settings config object (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586437 [11] Validation of unexisting fields on paragraphs actions (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3571033 [12] ai_content_suggestions: On-focus button un-hide rule misses .field-widget-action-widget-button for field--type-string-long (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3583883 [13] Add info about initiative and release differences to project page (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586568 [14] Add a deterministic script to auto-generate the providers/operation-types matrix from GitLab (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586488 [15] Add metadata (token usage and rate limits) to ChatGenerator in AI API Explorer (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586572 [16] Introduce a modern AI Chatbot frontend library (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586571 [17] Add metadata to VectorDBGenerator in AI-API-Explorer (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3549175 [18] Add an AI reranking processor for Search API (owned by the AI module) (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586543 [19] Add Functional Tests for AI CKEditor (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3477173 [20] ai_ckeditor: Add option to show or hide the "AI Writer" status information (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586569 [21] Tools UI overview page does not load (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3579979 [22] Batch embeddings for improved indexing performance (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1704 [23] ai-3586569: ai_ckeditor: Add option to show or hide the "AI Writer" status information (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1728 [24] 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 [25] fix(ai_ckeditor): remove stale toolbar items on uninstall and warn on confirm page (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1731 [26] fix: #3586573 Tone of voice CKEditor Plugin does not use the translated... (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1730 [27] Resolve "Add a deterministic script to auto-generate the providers/operation-types matrix from GitLab" (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1645 [28] Issue #3586543: Add AI reranking processor for Search API. (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1729 [29] Issue #3477173: Add functional tests for AI CKEditor (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1302 [30] Add AICKeditor tests (Target 1.4.x) (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1577 [31] Added Functional JavaScript Tests (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1257 [32] fix: ai_ckeditor: Add option to show or hide the "AI Writer" status information (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1727 [33] Source case studies from AI Summit Rotterdam (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3586557 [34] [Meta] Cover remaining AI operation types with ECA execute actions (ai_integration_eca, Issue) — https://git.drupalcode.org/project/ai_integration_eca/-/work_items/3585013 [35] Add ECA execute action for Translate Text (ai_integration_eca, Issue) — https://git.drupalcode.org/project/ai_integration_eca/-/work_items/3585012 [36] Resolve #3593019 "Add imagetoimage possibilities" (ai_provider_openai, MR) — https://git.drupalcode.org/project/ai_provider_openai/-/merge_requests/72 [37] Issue #3590963: Bump SDK constraint and drop method_exists defensive check (ai_provider_anthropic, MR) — https://git.drupalcode.org/project/ai_provider_anthropic/-/merge_requests/28 [38] Automated Project Update Bot fixes (mcp_client, MR) — https://git.drupalcode.org/project/mcp_client/-/merge_requests/19 [39] Add support for batch embeddings (gemini_provider, Issue) — https://git.drupalcode.org/project/gemini_provider/-/work_items/3589183 [40] Support batch embeddings (gemini_provider, MR) — https://git.drupalcode.org/project/gemini_provider/-/merge_requests/37 [41] add support for batching on indexing operations (ai_vdb_provider_milvus, MR) — https://git.drupalcode.org/project/ai_vdb_provider_milvus/-/merge_requests/44 [42] Automated Drupal 12 compatibility fixes for mcp 1.x-dev (mcp, Issue) — https://git.drupalcode.org/project/mcp/-/work_items/3587790 [43] Automated Project Update Bot fixes (mcp, MR) — https://git.drupalcode.org/project/mcp/-/merge_requests/53 [44] Dependency Dashboard (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591657 [45] Boolean field values resetting when using Patterns (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591637 [46] Boolean prop values not retained correctly on SDC components with multiple boolean props (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591697 [47] Boolean props auto-enable when another prop is changed in the Canvas form (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591716 [48] Cast transform treats serialized "0" as true for boolean props (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591739 [49] Add Code Component prop type for multiline plain text (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591741 [50] Canvas Page Preview Fails After Language Code Update for Existing Translations (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591713 [51] 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 [52] Fix explanation of lack of Canvas page language support to account for varied use cases (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591740 [53] Canvas AI - fix deprecated Image import, unsupported package handling, prop/slot name collision, hardcoded error messages, and add slots support (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3584136 [54] Add feature flag for content entity reference props (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591711 [55] WSOD AssertionError: assert(!$data instanceof ComponentInputsMapping) in assert() when requesting tmgmt translation job (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591734 [56] Bump drupal-canvas package to 0.4.2 (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591694 [57] Add translation data to code component data provider (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591738 [58] 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 [59] Access check when publishing auto-save items needs be performed earlier (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591736 [60] Refactor away the confusing "dangling component tree" concept (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3571785 [61] Automate MR review using PHPCS: disallow `\Drupal::service('something')`, require `\Drupal::service(Something::class)` whenever possible, with automatic fixing (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3581133 [62] Non-Canvas (foreign) Drupal form textareas rendered inside Canvas are read-only and lose their #default_value (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591737 [63] CKEditor's source element is not tagged with the active text format inside Canvas, breaking modules that rely on core's editor-attach contract (e.g. ai_ckeditor) (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591735 [64] 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 [65] Text-based comparison of entities (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591668 [66] Translating unpublished page crashes canvas (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591714 [67] Remove workaround in ApiLayoutControllerGetTest::testConfigTranslationAvailabilityLinksAndPermissions() (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591733 [68] 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 [69] Remove `canvas_dev_cd` flag module (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591732 [70] Canvas AI: In-progress chat messages disappear when editing page metadata during an active run (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591731 [71] Changing Metadata Clears Canvas AI Prompt Text (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3558257 [72] fix(deps): update npm minor and patch (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1238 [73] Access check in ApiAutoSaveController::post() should be performed earlier (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1302 [74] fix(Internal HTTP API, Translation): #3591713 Fix Canvas page preview for translated pages when the URL prefix differs from the langcode (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1304 [75] Suggest updated text to account for broader multilingual use case (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1303 [76] feat(CLI Tool): Clean up the output of all CLI commands (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1280 [77] Issue #3584136: Fix canvas_component_agent prompt bugs (Image import,... (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1237 [78] 3591734: WSOD AssertionError: assert(!$data instanceof ComponentInputsMapping) in assert() when requesting tmgmt translation job (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1296 [79] chore(Data model): #3591727 Store each prop's translatability per component version so deleting an optional prop keeps config-defined component trees valid (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1300 [80] #3591738 add translation data to code component provider (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1301 [81] feat(Drush): #3585531 Add commands to list, audit, and generate Canvas components (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/937 [82] #3581133: Automate MR review using PHPCS: disallow `\Drupal::service('something')`, require `\Drupal::service(Something::class)` whenever possible, with automatic fixing (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1297 [83] Issue #3591737: Make foreign Drupal form textareas editable in Canvas by... (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1299 [84] Issue #3591735: AI CKEditor text format (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1298 [85] 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 [86] AI-generated. (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/797 [87] feat(Conflict detection): #3587526 "Detect conflicts during publishing of changes to Page entity" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1193 [88] feat(Conflict detection): #3587526 "Client side prevention of publishing" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1018 [89] Draft: feat(Notifications, Conflict detection): #3591723 Add conflict notification... (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1295 [90] #3591733"Remove workaround in ApiLayoutControllerGetTest::testConfigTranslationAvailabilityLinksAndPermissions()" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1294 [91] 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 [92] Sprint 12 CCC roadmap updates, sprint planning, and issue triage (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586277 [93] Move scheduler feature to submodule or progressive enhancement (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3577429 [94] Allow subcontext scope to override parent scope (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586218 [95] 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 [96] CCC beta3 release planning (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586182 [97] UX improvements on new context listing page (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586274 [98] Avoid Full Published-ID Scans Before Scope Prefiltering (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586206 [99] Rename entity bundle and target entity scope plugins for better DX (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586276 [100] CCC beta / pre-rc1 community testing (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586234 [101] [Meta] Fix CCC issues based on AI Best Practices results (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586298 [102] Clean up CCC test and documentation consistency before rc1 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586299 [103] Clean up CCC accessible interactive links and external links (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586301 [104] Clean up CCC tooltip, truncation, and icon-only content (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586302 [105] Clean up CCC JavaScript filter feedback (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586303 [106] Clean up CCC form and table accessibility cleanup (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586304 [107] Clean up CCC documentation and API consistency (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586305 [108] Clean up CCC configuration policy checks (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586306 [109] Clean up CCC cacheability and access metadata (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586300 [110] Test AI Best Practices skills on AI Context codebase (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586258 [111] Add warning on subcontext edit form if parent is unpublished (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586297 [112] [Discuss] Moderation status of subcontext vs parent context items (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586264 [113] hook_ai_context_scope_values_alter() is not honored in scope value forms (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586246 [114] `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 [115] Question about "Subcontext type = Conditional - included based on relevance" (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586149 [116] Inject context into ai_ckeditor requests (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3581955 [117] [Discuss] Context scope matching semantics: additive OR, filters, and UX clarity (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586196 [118] Document supported vs internal CCC APIs (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586241 [119] Provide test context items for testing CCC (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586244 [120] CCC beta3 QA (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586296 [121] CCC beta2 QA (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586156 [122] Create CCC beta3 release (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586295 [123] CCC beta3 codebase review (pre-release) (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586294 [124] Create CCC beta2 release (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3585920 [125] CCC beta2 codebase review (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586202 [126] [Discuss] Add boundaries / exclusions to scope plugins (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586197 [127] Sprint 13 CCC roadmap updates, sprint planning, and issue triage (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586293 [128] Evaluate Annotations module and how it might work with CCC (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586268 [129] Update CCC overview page with hide option and new wording (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586211 [130] Handle the case when scope plugin values are no longer available (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586145 [131] Clean up follow-ups from target entity decoupling review (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586082 [132] Issue #3577429: Make Scheduler an optional progressive feature. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/178 [133] Issue #3586274: Merge Use cases/Scope columns and add cascading scope filter (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/184 [134] Issue #3586276: Rename entity bundle and target entity scope plugins for better DX (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/195 [135] Issue #3586297: Add warning on subcontext edit form if parent is unpublished. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/196 [136] Issue #3586264: Show warning when subcontext parent is unpublished. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/193 [137] Batch embeddings for improved indexing performance (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584024 [138] Resolve "Batch embeddings for improved indexing performance" (ai_search, MR) — https://git.drupalcode.org/project/ai_search/-/merge_requests/53 [139] Field Widget Button labels are not translatable via UI (field_widget_actions, Issue) — https://git.drupalcode.org/project/field_widget_actions/-/work_items/3578824 [140] 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 [141] feat: #3582452 Add guardrail set selection to ai_search_block (ai_search_block, MR) — https://git.drupalcode.org/project/ai_search_block/-/merge_requests/44 [142] Automated Project Update Bot fixes (langfuse, MR) — https://git.drupalcode.org/project/langfuse/-/merge_requests/5 --- MODULE SUMMARIES ---

                                    AI (Artificial Intelligence)

                                    Functional test coverage for ai_ckeditor was merged, closing Add Functional Tests for AI CKEditor. The test suite validates end-to-end CKEditor integration with screenshots on failure.

                                    Several user experience improvements are now in review. ai_ckeditor: Add option to show or hide the "AI Writer" status information has an open MR (!1728) adding a configuration option to toggle the "AI Writer: Idle" status display. Uninstalling ai_ckeditor leaves stale toolbar items in editor.editor.* configuration has a proposed fix (MR !1731) that implements hook_module_preuninstall() to clean up toolbar references and warns users on the uninstall confirmation form.

                                    Progress was made on Search API reranking support. Add an AI reranking processor for Search API has MR !1729 open, implementing a new AiReranker processor plugin that consumes the existing rerank operation type to re-order results from any Search API backend.

                                    Work continues on batch embeddings (MR !1704), provider matrix automation (MR !1645), and off-canvas dialog support for the ai_json_schema form element. Two issues were closed: Field Widget Button labels are not translatable via UI and Add ai_budget_control to the ecosystem / related modules list.

                                    How can I help on this project?

                                    Review MR !1729 for the Search API reranker processor. Test MR !1731 to verify ai_ckeditor uninstall cleanup works correctly. Help document the AI ecosystem by contributing to Document the AI module ecosystem: a categorized list of related modules with links and summaries, which has no related MRs yet.

                                    Contributors: Abhisek Mazumdar (abhisekmazumdar), AKHIL BABU (AkhilBabu) [1], Artem Dmitriiev (a.dmitriiev), Hrishikesh Dalal (hrishikesh-dalal), Marcus Johansson (Marcus_Johansson), Mukeysh, Ricardo Castañeda (cadence96), Thomas Werthmüller (weri), velmir_taky (root_emarketing)

                                    ---

                                    Drupal AI Initiative

                                    The Drupal AI Initiative saw limited code activity during this period, with focus remaining on marketing and community outreach efforts. Work continued on Source case studies from AI Summit Rotterdam, which aims to curate case studies from session submissions at the upcoming Enterprise AI Summit in September. Access to session submissions has been secured, with remaining tasks focused on enriching the data and establishing contact with submitters for potential webinars and articles.

                                    No merge requests were merged and no commits were pushed during the reporting period. Development activity appears focused on planning and coordination rather than technical implementation at this time.

                                    How can I help on this project?

                                    Review the open issues in the ai_initiative project queue to identify tasks needing technical implementation. Consider contributing to documentation or API development work if available. Join the project's communication channels to understand current development priorities and blockers.

                                    ---

                                    AI Integration - ECA

                                    The AI Integration - ECA module saw planning activity this period focused on expanding ECA action coverage. A meta issue tracking [Meta] Cover remaining AI operation types with ECA execute actions was updated. The module currently ships ECA execute actions for only 5 of the approximately 18 AI operation types exposed by the AI module (Chat, Embedding, Moderation, Speech to Text, and Text to Speech). The meta issue coordinates child issues to add execute actions for the remaining operation types, excluding ImageAndAudioToVideo which has minimal provider support.

                                    Among the child issues, Add ECA execute action for Translate Text was updated. The task proposes adding a new Plugin\Action\TranslateText class extending AiConfigActionBase to enable ECA flows to drive the TranslateText operation type without custom plugins. No merge requests were opened or merged during this period.

                                    How can I help on this project?

                                    Pick up one of the unassigned child issues under the meta to implement an ECA execute action for an uncovered AI operation type. Start with Translate Text, following the pattern established in existing actions like Chat.php.

                                    ---

                                    OpenAI Provider

                                    The Resolve #3593019 "Add imagetoimage possibilities" merge request was merged during this period, adding support for image-to-image capabilities to the OpenAI provider. The change involved 307 lines of diff and expands the provider's functionality beyond text-based operations.

                                    How can I help on this project?

                                    The module appears to be in a stable state with no open issues or pending merge requests in the current tracking window. Contributors could help by testing the newly merged image-to-image functionality with various OpenAI models, documenting usage examples, or reviewing the issue queue for any compatibility concerns with recent Drupal core or AI module updates.

                                    Contributors: Marcus Johansson (Marcus_Johansson)

                                    ---

                                    Anthropic Provider

                                    A significant merge request was completed during the period: Bump SDK constraint and drop method_exists defensive check was merged. This represents phase 2 of the native SDK integration work and delivers two major features.

                                    The merge introduces a prompt caching admin UI with an "Enable prompt caching" toggle and TTL selector (5 minutes or 1 hour) in the provider settings form. System prompts are now sent as typed TextBlockParam objects with cache_control metadata when caching is enabled. The 1-hour TTL option works without beta headers and is generally available.

                                    PDF document input support was also added, allowing files to be attached as base64-encoded content in the messages array. The implementation includes validation to ensure prompt caching is enabled when PDFs are present, as the beta header required for document processing also covers prompt caching.

                                    The branch targets the 1.3.x release line and was fast-forward mergeable, removing defensive method_exists checks that are no longer necessary with the updated SDK constraint.

                                    How can I help on this project?

                                    Test the newly merged prompt caching and PDF input features on a 1.3.x development site and report any issues. Review open issues in the queue to identify bugs or feature requests that need attention. Contribute documentation for the new caching configuration options.

                                    Contributors: Carlos Ospina (camoa) ---

                                    Fireworks AI

                                    Three commits were pushed during the reporting period. Work focused on fixing requirements in the module, with two separate commits addressing requirement-related issues. A third commit implemented reranking functionality and refactored code to use the base class, suggesting improvements to the module's architecture and inheritance structure.

                                    No merge requests were merged or opened, and no issues saw comment activity during this period. The commits represent direct pushes to the codebase.

                                    How can I help on this project?

                                    Review the recent requirement fixes and rerank implementation commits to identify any edge cases or documentation gaps. Check the issue queue for unassigned bugs or feature requests that need attention. Test the module with various Fireworks AI API configurations to validate stability.

                                    Contributors: Marcus Johansson [3]

                                    ---

                                    MCP Client

                                    Activity in the MCP Client module over the past 24 hours was limited to automated maintenance. A merge request titled Automated Project Update Bot fixes was opened, containing changes from an automated project update run. The MR includes 180 lines of diff and remains open for review.

                                    No merge requests were merged, no commits were pushed, and no issues saw active discussion during this period.

                                    How can I help on this project?

                                    Review the Automated Project Update Bot fixes merge request to validate the proposed changes. Check the issue queue for unassigned issues without patches that could benefit from development work. Test the module with the latest Drupal core release to identify any compatibility issues.

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

                                    Gemini Provider

                                    A new merge request for Add support for batch embeddings was opened during the reporting period. The Support batch embeddings MR implements batch embedding support using Gemini's batchEmbedContents method, following up on prior work in the AI module around EmbeddingsInput handling. The implementation spans 389 diff lines and is currently awaiting review. No commits were pushed and no other issues were updated in the last 24 hours.

                                    How can I help on this project?

                                    Review the Support batch embeddings merge request to evaluate the implementation of batchEmbedContents integration and ensure it aligns with the AI module's embedding API patterns.

                                    Contributors: Artem Dmitriiev (a.dmitriiev)

                                    ---

                                    Milvus VDB Provider

                                    A new merge request was opened to add support for batching on indexing operations. The proposed changes span 297 lines and target the branch 3568651-batch-inserts-index-only. This work aims to enable batch processing for indexing operations, which should improve performance when handling multiple insert operations. The merge request is currently awaiting review.

                                    No commits were pushed and no issues were updated during this reporting period.

                                    How can I help on this project?

                                    • Review the open batching on indexing operations merge request to provide feedback on the implementation approach and test coverage.
                                    • Test the batching functionality with various data volumes to validate performance improvements and edge case handling.

                                    Contributors: Artem Dmitriiev (a.dmitriiev)

                                    ---

                                    Model Context Protocol

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

                                    How can I help on this project?

                                    Review the automated Drupal 12 compatibility fixes to verify the changes are appropriate and do not introduce regressions. Test the patched code against Drupal 12 to confirm compatibility. Provide feedback on the MR to help move it toward merge.

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

                                    ---

                                    Drupal Canvas

                                    Several critical patches addressing boolean prop handling were merged this period. Component inputs order is database-backend-dependent was resolved, fixing test failures on MySQL and PostgreSQL by comparing component inputs order-independently and enforcing key-order constraints via PHPStan. The feature flag for content entity reference props was closed, introducing the hidden canvas_dev_er module to gate this experimental prop type in the code editor.

                                    Work continues on conflict detection and resolution, with multiple open MRs. Backend conflict detection during publishing adds HTTP 409 responses when conflicts are detected, while client-side prevention of publishing disables selection and publishing of conflicted changes in the review UI.

                                    Translation support saw progress with fixes for Canvas page preview failures after language code updates and work on TMGMT translation job WSOD issues. The deleting optional props regression remains under review, addressing validation errors in config-defined component instances when optional props are removed from SDC or code components.

                                    Several boolean-related issues remain open, including cast transform treating serialized "0" as true and boolean props auto-enabling when other props change.

                                    How can I help on this project?

                                    Review the open MR for PHPCS enforcement of FQCN::class for Drupal::service() calls, which spans over 4700 lines. Test the access check fix for auto-save publishing to verify it properly validates user permissions. Pick up multiline plain text prop type support in Code Component Editor, which has no related MR yet.

                                    Contributors: **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Ahmad Khalil (ahmad-khalil-imagex), Ben Mullins (bnjmnm), Bálint Kléri (balintbrews), Christian López Espínola (penyaskito), Feliksas Mazeikis (f.mazeikis), Gábor Hojtsy (goba), Kunal Sachdev (kunal.sachdev), Matt Glaman (mglaman), Narendra Singh Rathore (NarendraR), Oleksandr Antonchyk (Anton4yk), Ravi Maniyar (ravi.maniyar.123), Wim Leers (wimleers)

                                    ---

                                    Context Control Center (CCC)

                                    The Scheduler feature was successfully moved to an optional progressive enhancement, reducing hard dependencies for the module. MR !178 was merged, making Scheduler configuration and UI available only when the contrib module is installed.

                                    A critical scope extension bug was resolved: hook_ai_context_scope_values_alter() is now honored by scope forms and label rendering. Previously, the alter hook was invoked but never consumed by form builders or scope resolvers, preventing downstream modules from adding custom scope values. The fix ensures both the subscription UI and context item forms respect hook-provided values, and scope labels in pills and agent subscriptions render correctly.

                                    Sprint 12 planning closed, and Sprint 13 planning opened with a focus on beta3 release preparation. Several post-beta2 codebase review issues were created following AI Best Practices analysis, grouping accessibility, cacheability, form/table cleanup, and documentation fixes into discrete follow-up issues under a meta issue. The overview page was updated with friendlier wording and a hide option. Discussion concluded on subcontext moderation behavior, with a follow-up warning added when a parent is unpublished (MR !196 open). Work continued on UX improvements for the context listing page, merging Use Cases and Scope columns and introducing cascading scope filters (MR !184 open). Additional open MRs include scope plugin renaming for better DX (MR !195).

                                    How can I help on this project?

                                    Review the open merge requests for listing page UX improvements (MR !184) or scope plugin renaming (MR !195). Pick up unassigned issues from the AI Best Practices meta such as accessible link cleanup or JavaScript filter feedback. Help with community beta testing and report findings.

                                    Contributors: Kristen Pol (kepol), Matt Glaman (mglaman) [1], Tamas Balog (tbalog)

                                    ---

                                    AI Search

                                    A merge request addressing Batch embeddings for improved indexing performance was opened, introducing support for batched embedding operations during indexing. The 732-line merge request ports functionality from AI Core to improve indexing performance by processing embeddings in batches rather than individually. This work is part of migrating features from the deprecated ai_search submodule. The issue remains assigned and the merge request is awaiting review.

                                    How can I help on this project?

                                    • Review the open batch embeddings merge request for code quality, API design, and performance implications.
                                    • Test the batching implementation with various embedding providers to ensure compatibility and measure actual performance improvements.

                                    Contributors: Artem Dmitriiev (a.dmitriiev)

                                    ---

                                    Field Widget Actions

                                    Activity over the past 24 hours focused on two areas: Ajax support for form elements and translation capabilities.

                                    A merge request addressing Support for checkboxes/radio buttons using Ajax JS Commands remains open for review. The MR includes 433 lines of diff and aims to extend Ajax functionality to checkboxes and radio button field widgets.

                                    On the translation front, a new issue was accepted highlighting that Field Widget Button labels are not translatable via UI. Button labels configured through entity form displays currently lack a dedicated translation interface at /admin/config/regional/config-translation, creating a barrier for multilingual sites using custom button labels in field widget actions.

                                    How can I help on this project?

                                    Review the open Ajax checkboxes/radio buttons MR to help move it toward merge. Investigate the translation issue to propose a solution for exposing field widget button labels through the configuration translation UI.

                                    Contributors: Scott Euser (scotteuser)

                                    ---

                                    AI powered Search Block

                                    A new merge request was opened to add guardrail set selection to ai_search_block. The feature branch contains 800 lines of changes, suggesting a substantial addition to the module's configuration or functionality related to guardrail integration.

                                    No merge requests were merged during this period, and no commits were pushed to the main branch. Development activity appears focused on preparing the guardrail set selection feature for review.

                                    How can I help on this project?

                                    Review the open merge request for guardrail set selection, testing the functionality and providing feedback on the implementation. Check for code style compliance, API usage patterns, and potential edge cases in the 800-line changeset.

                                    Contributors: Abhisek Mazumdar (abhisekmazumdar)

                                    ---

                                    Langfuse

                                    The Langfuse module saw automated maintenance activity during this period. A merge request titled Automated Project Update Bot fixes was opened, containing 179 lines of diff that were generated automatically. The MR is currently awaiting review and has not yet been merged.

                                    No issues were updated, no commits were pushed, and no other merge requests were merged during the reporting period. The automated fixes represent the only active development work in the queue at this time.

                                    How can I help on this project?

                                    • Review the open Automated Project Update Bot fixes merge request to validate the automated changes and help move it toward merge.
                                    • Test the module with recent Drupal core versions to identify any compatibility issues or bugs that need attention.

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

                                    ======================================================================== ## [21] factcheck:tldr:developer ======================================================================== Layer-1 corrections: 0 Judge flags: 0 ======================================================================== ## [22] 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-26T05:00:05+00:00 to 2026-06-27T05: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), AKHIL BABU (AkhilBabu) [1], Artem Dmitriiev (a.dmitriiev), Hrishikesh Dalal (hrishikesh-dalal), Marcus Johansson (Marcus_Johansson), Mukeysh, Ricardo Castañeda (cadence96), Thomas Werthmüller (weri), velmir_taky (root_emarketing)". 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). ### [Batch embeddings for improved indexing performance](https://git.drupalcode.org/project/ai/-/work_items/3568648) State: opened | Updated: 2026-06-27 | Author: drupalbot | Assigned: Sergiu Nagailic (Nikro) | Labels: AI Initiative Sprint, AI Product Development, aiSearch, candidate 1.5.x Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1704 [Batch embeddings for improved indexing performance](https://git.drupalcode.org/project/ai/-/merge_requests/1704) | State: opened | Author: Artem Dmitriiev (a.dmitriiev), 286 diff lines 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… ### [Add interactive refinement capability to Field Widget Actions](https://git.drupalcode.org/project/ai/-/work_items/3586468) State: opened | Updated: 2026-06-26 | Author: Edward Zwart (ezeedub) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, category::feature, priority::normal Description: ## Summary Add support for interactive refinement in ai_automators Field Widget Action plugins, allowing users to iteratively improve AI-generated content through conversational prompts before accepting it into a field. This is the companion issue to https://www.drupal.org/project/field_widget_actions/issues/3547306, which adds the modal infrastructure. This issue covers wiring up the automator plugins to use it. ## Problem Field Widg… ### [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-26 | Author: Ricardo Castañeda (cadence96) | Assigned: unassigned | Labels: aiCkeditor, category::bug, priority::normal, state::needsReview 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*… ### [Support the `ai_json_schema` element inside off-canvas dialogs](https://git.drupalcode.org/project/ai/-/work_items/3586536) State: opened | Updated: 2026-06-26 | Author: Ahmad Khader (Ahmad-Khader) | Assigned: Rob Loach (robloach) | 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… ### [Field Widget Button labels are not translatable via UI](https://git.drupalcode.org/project/ai/-/work_items/3567027) State: closed | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: category::bug, fieldWidgetActions, priority::normal, shouldMove Description: >>> [!note] Migrated issue Reported by: [fago](https://www.drupal.org/user/16747) >>> [Tracker] Update Summary: Field Widget Button labels are not translatable via UI Short Description: Button labels in field widget actions are configured via entity-form-displays. However, entity form displays have no UI for configuring translations, thus, there is no dedicated page and no entry at /admin/config/regional/config-translation Check-in Date: MM/DD/YYYY Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem Button labels in field widget actions are configured vi… ### [Tone of voice CKEditor Plugin does not use the translated version of the linked taxonomy](https://git.drupalcode.org/project/ai/-/work_items/3586573) State: opened | Updated: 2026-06-26 | Author: Thomas Werthmüller (weri) | Assigned: unassigned | Labels: Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1730 [fix: #3586573 Tone of voice CKEditor Plugin does not use the translated...](https://git.drupalcode.org/project/ai/-/merge_requests/1730) | State: closed | Author: Thomas Werthmüller (weri), 153 diff lines Description: ## Summary When I create a taxonomy for the tone of voice and allow to translate the terms, in the UI of the CKEditor always the default language is displayed and also the description of this term is used for prompting and not the translated version. ## Environment - Drupal version: 11 - Module version: 1.4.3 ### Screenshots ![CleanShot_2026-06-26_at_16.30.17](https://git.drupalcode.org/-/project/106525/uploads/0df4b3af6167109ba085e44a575e6a88/CleanShot_2026-06-26_at_16.30.17.png){width="725" height="600"} ### [Add ai_budget_control to the ecosystem / related modules list](https://git.drupalcode.org/project/ai/-/work_items/3583958) State: closed | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: category::feature, priority::normal, state::closed, v2.0.x-dev Description: >>> [!note] Migrated issue Reported by: [tchida](https://www.drupal.org/user/3835690) Related to !1483 >>> [Tracker] Update Summary: Request to list ai_budget_control in the AI ecosystem. Short Description: Add ai_budget_control to the project page and README to help users manage API costs. Check-in Date: 04/09/2026 Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Users of the main ai module need tools to control API costs and prevent abuse. I released AI Budget Control to provide API provider "Hard Limits" and native Flood API quotas. Add… ### [Suggest Tags automator should work with Tagify](https://git.drupalcode.org/project/ai/-/work_items/3536912) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: #drupalpune-sprint, aiAutomators, category::feature, priority Description: >>> [!note] Migrated issue Reported by: [mandclu](https://www.drupal.org/user/52136) >>> Problem/Motivation The new field widget actions are great! In many ways these recreate the experience that drew me into developing for the Augmentor AI module. One thing I do miss is a simple way to choose which generated tags to choose. Augmentor achieves this with an interim widget, showing the suggested tags as tiles that when clicked add the suggestion into the tags field. I think we could achieve something similar if we could have a field widget action that worked with the Tagify widget. It would … ### [Document the AI module ecosystem: a categorized list of related modules with links and summaries](https://git.drupalcode.org/project/ai/-/work_items/3586482) State: opened | Updated: 2026-06-26 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: Rob Loach (robloach) | Labels: AI Initiative Sprint, AI Product Development, category::task, priority::normal Description: ## Description The AI module has grown a large ecosystem of companion projects on drupal.org — providers, vector database (VDB) providers, agents, recipes, tools, automators, and full distributions/CMS profiles. Today there is no single, curated page in the AI module's documentation that tells a site builder or developer **what exists, where to find it, and what each project does.** Discovering these modules currently means searching drupal.org by hand or relying on word of mouth. A maintained ecosystem index would make the AI module dramatically easier to adopt: people could see at a glance… ### [Save AI Content Suggestion plugin settings inside ai_content_suggestions.settings config object](https://git.drupalcode.org/project/ai/-/work_items/3586437) State: opened | Updated: 2026-06-26 | Author: Artem Dmitriiev (a.dmitriiev) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, aiContentSuggestions, category::feature Description: ## Summary At the moment the settings of AI Content Suggestion plugins are splitted between 3 config objects: - ai_content_suggestions.settings - ai_content_suggestions.prompts - ai_content_suggestions.tone ## Problem Content object `ai_content_suggestions.settings` needs to have all plugin settings to avoid loading unnecessary configurations, this way the plugin instantiation could be easier as configuration will exist in the same config file. > Change record: [#3591233](https://www.drupal.org/node/3591233) ### [Validation of unexisting fields on paragraphs actions](https://git.drupalcode.org/project/ai/-/work_items/3571033) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: aiContentSuggestions, category::bug, priority::normal, shouldMove Description: >>> [!note] Migrated issue Reported by: [aaron gil martinez](https://www.drupal.org/user/3605526) Related to !1150 >>> Problem/Motivation When a node form uses Paragraphs, the AI Content Suggestions “Select the field(s) you wish to send to the LLM” list does not update after Paragraphs AJAX actions (collapse/edit/add). This makes it possible to select stale/hidden paragraph fields or miss newly added ones or even display errors because of validation on non-existing fields in the list. Steps to reproduce (required for bugs, but not feature requests) Enable ai_content_suggestio… ### [ai_content_suggestions: On-focus button un-hide rule misses .field-widget-action-widget-button for field--type-string-long](https://git.drupalcode.org/project/ai/-/work_items/3583883) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: aiContentSuggestions, category::bug, priority::minor, shouldMove Description: >>> [!note] Migrated issue Reported by: [jjchinquist](https://www.drupal.org/user/286806) >>> [Tracker] Update Summary: Bug report, AI Suggestions button stays hidden on focus for string_long textarea fields. Short Description: On-focus un-hide CSS rule in ai_content_suggestions misses .field-widget-action-widget-button for field--type-string-long. Check-in Date: 04/09/2026 Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation When the display_on_focus setting is enabled on a field widget action plugin attached to a field--type-string-long fie… ### [Add info about initiative and release differences to project page](https://git.drupalcode.org/project/ai/-/work_items/3586568) State: opened | Updated: 2026-06-26 | 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… ### [Add a deterministic script to auto-generate the providers/operation-types matrix from GitLab](https://git.drupalcode.org/project/ai/-/work_items/3586488) State: opened | Updated: 2026-06-26 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, category::task, documentation Description: ## Description The provider/operation-type matrix at `docs/providers/matris.md` is maintained by hand. Today the only way it stays current is a note at the bottom asking contributors to open a pull request when their provider is missing — so it drifts out of date and is incomplete. We should add a **deterministic** script under `scripts/` that discovers every AI provider plugin published on `git.drupalcode.org`, works out which operation types each one supports, and regenerates `docs/providers/matris.md` from that data. Determinism matters so the script can run in CI / on a schedule and prod… ### [Add metadata (token usage and rate limits) to ChatGenerator in AI API Explorer](https://git.drupalcode.org/project/ai/-/work_items/3586572) State: opened | Updated: 2026-06-26 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | Labels: Is Contextualized, aiApiExplorer, category::task, priority::normal Description: ## Summary The **Chat Generation Explorer** (`ChatGenerator` plugin) in the AI API Explorer should also display the response **metadata** returned by the provider — specifically **token usage** and, when the provider exposes it, **rate limit** information. ## Problem When you run a chat through the explorer, the response object (`\Drupal\ai\OperationType\Chat\ChatOutput`) already carries this metadata, but the explorer throws it away. `ChatOutput` already exposes everything we need: - `getTokenUsage(): \Drupal\ai\Dto\TokenUsageDto` — `input`, `output`, `total`, `reasoning`, `cached` toke… ### [Introduce a modern AI Chatbot frontend library](https://git.drupalcode.org/project/ai/-/work_items/3586571) State: opened | Updated: 2026-06-26 | Author: Bruno Bruno (bbruno) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, why::needsInfo Description: ## Description The current AI Chatbot module is tightly coupled to the DeepChat library. DeepChat does more than render the UI - it also handles the API communication, chat state, and message history. Functionality such as tool calling, conversation history, and thread management is implemented in a DeepChat-specific way, making it difficult to swap in alternative chat interfaces. [assistant-ui](https://www.assistant-ui.com/) was identified as a promising alternative - a React-based component library that supports custom API endpoints and offers significantly easier customization than DeepCha… ### [Add metadata to VectorDBGenerator in AI-API-Explorer](https://git.drupalcode.org/project/ai/-/work_items/3549175) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: Isaac Trogdon (dotist) | Labels: aiApiExplorer, category::task, priority::normal, state::accepted Description: >>> [!note] Migrated issue Reported by: [d0t15t](https://www.drupal.org/user/132353) >>> Problem/Motivation It would be great to see the available metadata in the VDB results, for instance - to add the drupal_long_id. ### [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-26 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | 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… ### [Add Functional Tests for AI CKEditor](https://git.drupalcode.org/project/ai/-/work_items/3477173) State: closed | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative Sprint, aiCkeditor, category::task, needs backport to 1.3.x Description: >>> [!note] Migrated issue Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !1302 !1257 >>> Problem/Motivation Add tests that tries out the e2e AI Ckeditor. Add screenshots on failure. Steps to reproduce Proposed resolution Remaining tasks User interface changes API changes Data model changes ### [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-26 | Author: mxh (hauptm) | Assigned: unassigned | Labels: category::feature, priority::minor, state::accepted 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… ### [Tools UI overview page does not load](https://git.drupalcode.org/project/ai/-/work_items/3579979) State: opened | Updated: 2026-06-26 | 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… --- MERGE REQUESTS (24h) --- ### [ai-3586569: ai_ckeditor: Add option to show or hide the "AI Writer" status information](https://git.drupalcode.org/project/ai/-/merge_requests/1728) State: opened | Author: Mukeysh | Branch: 3586569-ai-ckeditor-add-option-to-show-or-hide-the-ai-writer-status-information | 181 diff lines Description: ## Description 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. ## Solution Add a configuration option into `ai_ckeditor.settings` and expose it via UI. ## Testing instructions 1. Enable AI + AI CKEditor. Run `npm ci && npm run build` in modules/ai_cked… ### [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) | Branch: 3586549-improve-ai-ckeditor-ux-when-no-provider-modules-are-installed | 56 diff lines Description: ## Description Improves the UX of `ai_ckeditor` when no AI provider module is installed. Currently, the "AI tools" tab in the CKEditor text format configuration (`/admin/config/content/formats/manage/*`) renders the full plugin settings form even when no provider is available, giving no feedback to the user about why the feature will not work. New users who install `ai_ckeditor` without first setting up a provider are left confused. This MR adds a guard in `AiCKEditor::buildConfigurationForm()` that detects when `AiProviderPluginManager::getDefinitions()` returns empty — the… ### [fix(ai_ckeditor): remove stale toolbar items on uninstall and warn on confirm page](https://git.drupalcode.org/project/ai/-/merge_requests/1731) State: opened | Author: Ricardo Castañeda (cadence96) | Branch: 3586570-uninstalling-ai-ckeditor-leaves-stale-toolbar-items-in-editoreditor-configuration | 108 diff lines Description: ## Description Fixes an issue where uninstalling `ai_ckeditor` left stale toolbar references in existing `editor.editor.*` configuration entities, causing CKEditor 5 text format configuration pages to break. Two changes in `ai_ckeditor.install`: - **`hook_module_preuninstall()`**: Before the module is removed, iterates over all `editor.editor.*` configs and strips the `aickeditor` and `ai_balloon_menu` toolbar items, as well as the `ai_ckeditor_ai` plugin configuration block. - **`hook_form_FORM_ID_alter()` for `system_modules_uninstall_confirm_form`**: Reads the pending modules from the ex… ### [Resolve "Add a deterministic script to auto-generate the providers/operation-types matrix from GitLab"](https://git.drupalcode.org/project/ai/-/merge_requests/1645) State: opened | Author: Marcus Johansson (Marcus_Johansson) | Branch: 3586488-add-a-deterministic-script-to-auto-generate-the-providersoperation-types-matrix-from-gitlab | 1157 diff lines ### [Issue #3586543: Add AI reranking processor for Search API.](https://git.drupalcode.org/project/ai/-/merge_requests/1729) State: opened | Author: Abhisek Mazumdar (abhisekmazumdar) | Branch: 3586543-add-ai-reranking-processor-for-search-api | 617 diff lines Description: ## Description A new Search API processor plugin (`ai_reranker`) that re-orders query results using the `rerank` operation type already in AI Core. The `rerank` operation was added in #3488114 but nothing consumed it for Search API. #3557901 proposed putting reranking in `ai_search`, but reranking is a generic capability. It belongs in the `ai` core module where the operation type itself lives, so it works with any Search API backend (database, Solr, anything), not just the vector backend. **New files:** - `src/Plugin/search_api/processor/AiReranker.php`: `ProcessorPluginBase` plugin runni… ### [Issue #3477173: Add functional tests for AI CKEditor](https://git.drupalcode.org/project/ai/-/merge_requests/1302) State: opened | Author: velmir_taky (root_emarketing) | Branch: 3477173-add-functional-tests-all | 616 diff lines Description: Closes #3477173 ### [Add AICKeditor tests (Target 1.4.x)](https://git.drupalcode.org/project/ai/-/merge_requests/1577) State: merged 2026-06-26 | Author: AKHIL BABU (AkhilBabu) | Branch: 3477173-add-functional-tests-all-1.4.x | 649 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… ### [Added Functional JavaScript Tests](https://git.drupalcode.org/project/ai/-/merge_requests/1257) State: closed | Author: Hrishikesh Dalal (hrishikesh-dalal) | Branch: 3477173-add-functional-tests-for-ckeditor | 319 diff lines Description: Closes #3477173 ### [fix: ai_ckeditor: Add option to show or hide the "AI Writer" status information](https://git.drupalcode.org/project/ai/-/merge_requests/1727) State: closed | Author: Mukeysh | Branch: 3586569-ai-ckeditor-add-option-to-show-or-hide-the-ai-writer-status-information | 15752 diff lines Description: ## Description --- COMMITS (24h) --- - [5c914934](https://git.drupalcode.org/project/ai/-/commit/5c914934931bd40fcb0ddf7631d5b1b5358c1909) Add AICKeditor tests (Target 1.4.x) — AKHIL BABU (2026-06-26T09:21:35.000+00:00) ======================================================================== ## [23] 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-26T05:00:05+00:00 to 2026-06-27T05: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). ### [Source case studies from AI Summit Rotterdam](https://git.drupalcode.org/project/ai_initiative/-/work_items/3586557) State: opened | Updated: 2026-06-27 | Author: Paul Johnson (pdjohnson) | Assigned: Rosie Gladden (rgladden) | Labels: AI Marketing, Drupal AI Success Stories, Enterprise AI Summit Description: ## Summary The Enterprise AI Summit is gathering session submissions ready for the event in September. This may surface case studies which are new to us. ## Work Track AI marketing ## Context / Background ## Tasks - [x] Collaborate with @wouters_frederik to gain access to the session submissions - [ ] Use the submissions as an input to case studies for Drupal AI - [ ] Make contact with the originator so that we can enrich the data / invite to webinars / ask them to write an article etc ## Acceptance Criteria - [ ] All new cases are curated - [ ] We are in contact with the creator --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- (none) ======================================================================== ## [24] 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-26T05:00:05+00:00 to 2026-06-27T05: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

                                        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). ### [[Meta] Cover remaining AI operation types with ECA execute actions](https://git.drupalcode.org/project/ai_integration_eca/-/work_items/3585013) State: opened | Updated: 2026-06-26 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Innovation, Road to 1.0.0, automation::error Description: ### Background The AI module exposes ~18 operation types, but this module only ships ECA execute actions for 5: Chat, Embedding, Moderation, Speech to Text, Text to Speech (`src/Plugin/Action/`). This meta tracks adding execute actions for the rest so ECA flows can drive every supported AI operation without custom plugins. ### Scope **Out of scope (deferred):** `ImageAndAudioToVideo` — provider support is minimal. **In scope — one child issue per operation type:** - [Add ECA execute action for Audio to Audio](https://git.drupalcode.org/project/ai_integration_eca/-/work_items/3585002) - [A… ### [Add ECA execute action for Translate Text](https://git.drupalcode.org/project/ai_integration_eca/-/work_items/3585012) State: opened | Updated: 2026-06-26 | Author: Marcus Johansson (Marcus_Johansson) | Assigned: unassigned | Labels: AI Initiative Sprint, AI Innovation, Road to 1.0.0, category::task Description: ### Problem/Motivation The AI module's `TranslateText` operation type has no corresponding ECA execute action in this module. ECA flows cannot drive `TranslateText` without a custom action plugin. Existing per-operation actions: Chat, Embedding, Moderation, Speech to Text, Text to Speech (`src/Plugin/Action/`). ### Proposed resolution Add `Plugin\Action\TranslateText` extending `AiConfigActionBase`, mirroring `Chat.php`: - Plugin id: `ai_integration_eca_execute_translate_text` - Builds the matching Input class from `Drupal\ai\OperationType\TranslateText\` and dispatches it through the con… --- MERGE REQUESTS (24h) --- (none) --- COMMITS (24h) --- (none) ======================================================================== ## [25] 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-26T05:00:05+00:00 to 2026-06-27T05: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: Marcus Johansson (Marcus_Johansson)". Use only the names from that list, verbatim, keeping any trailing "[N]" commit count exactly as shown. Do not introduce any other names. Format your response as an HTML fragment. Start with

                                          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) --- ### [Resolve #3593019 "Add imagetoimage possibilities"](https://git.drupalcode.org/project/ai_provider_openai/-/merge_requests/72) State: merged 2026-06-26 | Author: Marcus Johansson (Marcus_Johansson) | Branch: 3593019-add-imagetoimage-possibilities | 307 diff lines Description: Closes #3593019 --- COMMITS (24h) --- (none) ======================================================================== ## [26] summariseModule:ai_provider_anthropic:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Anthropic Provider (machine name: ai_provider_anthropic) Reporting period: last 24h (2026-06-26T05:00:05+00:00 to 2026-06-27T05: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: Carlos Ospina (camoa)". 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

                                            Anthropic 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) --- ### [Issue #3590963: Bump SDK constraint and drop method_exists defensive check](https://git.drupalcode.org/project/ai_provider_anthropic/-/merge_requests/28) State: merged 2026-06-26 | Author: Carlos Ospina (camoa) | Branch: 3590963-add-prompt-caching | 1677 diff lines Description: Phase 2 of the Anthropic provider native-SDK work (#3590963): prompt caching admin UI + PDF document input. Builds on Phase 1 (#3572402, merged in `d1e078a1`). Targets `1.3.x`; fast-forward mergeable. ## What this delivers **Prompt caching** - Admin UI: "Enable prompt caching" toggle and TTL selector (5m / 1h), `#states`-gated in the provider settings form. - System prompt sent as a typed `TextBlockParam` with `cache_control` when caching is on (caching a bare string is a no-op; the breakpoint must sit on a content block). - 1h TTL is GA and works without any beta header (verified live). - `… --- COMMITS (24h) --- (none) ======================================================================== ## [27] summariseModule:fireworksai:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Fireworks AI (machine name: fireworksai) Reporting period: last 24h (2026-06-26T05:00:05+00:00 to 2026-06-27T05: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: Marcus Johansson [3]". 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

                                              Fireworks AI

                                              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) --- (none) --- COMMITS (24h) --- - [ee2c30ef](https://git.drupalcode.org/project/fireworksai/-/commit/ee2c30ef5b295f812de054b8581c74b1eaafaa51) Fix requirement — Marcus Johansson (2026-06-26T12:52:35.000+02:00) - [b519a9c3](https://git.drupalcode.org/project/fireworksai/-/commit/b519a9c3f06bb5eaba11a8ca2a404c67c2d9a46e) Fix requirement — Marcus Johansson (2026-06-26T12:52:20.000+02:00) - [9071dce2](https://git.drupalcode.org/project/fireworksai/-/commit/9071dce2838aa88ac08b60dd5dfe979031dd98c7) Rerank and use the base class — Marcus Johansson (2026-06-26T12:51:40.000+02:00) ======================================================================== ## [28] summariseModule:mcp_client:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: MCP Client (machine name: mcp_client) Reporting period: last 24h (2026-06-26T05:00:05+00:00 to 2026-06-27T05: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

                                                MCP Client

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

                                                  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). ### [Add support for batch embeddings](https://git.drupalcode.org/project/gemini_provider/-/work_items/3589183) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative Sprint, AI Product Development, category::feature, code Description: >>> [!note] Migrated issue Reported by: [a.dmitriiev](https://www.drupal.org/user/3235287) Related to !37 >>> [Tracker] Update Summary: [One-line status update for stakeholders] Check-in Date: MM/DD/YYYY Additional Collaborators: Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation As a follow up to this issue https://git.drupalcode.org/project/ai/-/work_items/3568648 it would be nice to add support of batch embeddings as Gemini models can do that. Proposed resolution Use method batchEmbedContents from Gemini client when EmbeddingsInput conta… --- MERGE REQUESTS (24h) --- ### [Support batch embeddings](https://git.drupalcode.org/project/gemini_provider/-/merge_requests/37) State: opened | Author: Artem Dmitriiev (a.dmitriiev) | Branch: 3589183-add-support-for | 389 diff lines Description: Closes #3589183 --- COMMITS (24h) --- (none) ======================================================================== ## [30] 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-26T05:00:05+00:00 to 2026-06-27T05: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

                                                    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 --- COMMITS (24h) --- (none) ======================================================================== ## [31] summariseModule:mcp:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Model Context Protocol (machine name: mcp) Reporting period: last 24h (2026-06-26T05:00:05+00:00 to 2026-06-27T05: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

                                                      Model Context Protocol

                                                      then use

                                                      ,

                                                      ,

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

                                                        How can I help on this project?

                                                        " aimed at a non-technical executive. Suggest 2-3 concrete, high-level ways a leader could support or unblock progress (e.g. resourcing, stakeholder alignment, decision-making, funding, advocacy). Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, verify it against the issue data. Do not suggest actions that are already in progress or covered by an existing MR — for example, do not suggest that work needs to be started if an issue already has a Related MR. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). ### [Automated Drupal 12 compatibility fixes for mcp 1.x-dev](https://git.drupalcode.org/project/mcp/-/work_items/3587790) State: opened | Updated: 2026-06-26 | 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/mcp/-/merge_requests/53) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 254 diff lines Description: Relates to #3587790. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [32] 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-26T05:00:05+00:00 to 2026-06-27T05: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), Ahmad Khalil (ahmad-khalil-imagex), Ben Mullins (bnjmnm), Bálint Kléri (balintbrews), Christian López Espínola (penyaskito), Feliksas Mazeikis (f.mazeikis), Gábor Hojtsy (goba), Kunal Sachdev (kunal.sachdev), Matt Glaman (mglaman), Narendra Singh Rathore (NarendraR), Oleksandr Antonchyk (Anton4yk), Ravi Maniyar (ravi.maniyar.123), Wim Leers (wimleers)". 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-27 | 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… ### [Boolean field values resetting when using Patterns](https://git.drupalcode.org/project/canvas/-/work_items/3591637) State: opened | Updated: 2026-06-26 | Author: Amanda Donnelly (aadownie) | Assigned: unassigned | Labels: Description: When using Patterns in the 1.5 update, boolean values are not staying their set value when using Patterns after content is edited. To reproduce: Add a component that uses a boolean value, set with a default 'true', and a basic text field. In my example this boolean was used to show/hide a section of markup. Create a page with this component added, but set the boolean to 'false', then create a pattern with this layout. Add a new page, and drag the pattern over, which should have this boolean set to 'false' hiding the markup. Edit the text field. When the preview reloads, the formerly hidd… ### [Boolean prop values not retained correctly on SDC components with multiple boolean props](https://git.drupalcode.org/project/canvas/-/work_items/3591697) State: opened | Updated: 2026-06-26 | Author: Joery Lemmens (flyke) | Assigned: unassigned | Labels: Description: This is a recreation of issue [#3492368](https://www.drupal.org/project/experience_builder/issues/3492368) in the experience_builder module so that the issue ends up on the correct module and issue que. Please watch the video in that issue! I am using Drupal 11.3.12 and I'm having an issue with boolean props on both canvas 1.6.0 and latest canvas dev. I have a (card) component with multiple boolean props where example and default are all set to false. I create a card (I dont change any boolean props) and when changing the text content, it seems that all boolean prop widgets are still uncheck… ### [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-26 | 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… ### [Cast transform treats serialized "0" as true for boolean props](https://git.drupalcode.org/project/canvas/-/work_items/3591739) State: opened | Updated: 2026-06-26 | Author: Dirk Hacker (dehacker) | Assigned: unassigned | Labels: Description: **Summary:** * Unchecked Drupal checkboxes serialize as `"0"`. * `transforms.cast` only treats `'false'` as false, then `Boolean(value)`. * `Boolean("0") === true` → unchecked booleans flip to `true` on auto-save when another field changes. **Repro:** 1. Component with two boolean props (e.g. Hero Standard `popup_form` + `ppc_header`). 2. Open in Canvas editor; leave `popup_form` unchecked, toggle `ppc_header`. 3. Observe `popup_form` saved as `true`. **Fix:** Explicit handling when `to === 'boolean'` for `'0'`, `0`, `''`, `null`, `'false'`. ### [Add Code Component prop type for multiline plain text](https://git.drupalcode.org/project/canvas/-/work_items/3591741) State: opened | Updated: 2026-06-26 | Author: Alex Bronstein (effulgentsia) | Assigned: unassigned | Labels: Description: SDCs can have a prop schema of: ``` type: string pattern: "(.|\r?\n)*" ``` to signify a multi-line string. Canvas uses a textarea widget for the content entry for such a prop. The Code Component Editor currently doesn't provide either a dedicated prop type or a setting within the Text prop type for this. ### [Canvas Page Preview Fails After Language Code Update for Existing Translations](https://git.drupalcode.org/project/canvas/-/work_items/3591713) State: opened | Updated: 2026-06-26 | Author: Vipin Mittal (vipin.mittal18) | Assigned: unassigned | Labels: JavaScript, category::bug, priority::normal, state::needsReview Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1304 [fix(Internal HTTP API, Translation): #3591713 Fix Canvas page preview for translated pages when the URL prefix differs from the langcode](https://git.drupalcode.org/project/canvas/-/merge_requests/1304) | State: opened | Author: Christian López Espínola (penyaskito), 251 diff lines Description: When a language code is updated in Language Detection settings, previewing existing translated Canvas pages for that language results in a syntax error. The preview process continues to reference the previous language code instead of the updated one. **Steps to Reproduce** 1. Create or translate a Canvas page into a secondary language. 2. Navigate to Language Detection settings. 3. Update the language code for the translated language. 4. Save the configuration. 5. Open the translated Canvas page and click Preview. **Current Behaviour** - The preview fails and displays a syntax error. - The u… ### [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-26 | 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 t… ### [Fix explanation of lack of Canvas page language support to account for varied use cases](https://git.drupalcode.org/project/canvas/-/work_items/3591740) State: opened | Updated: 2026-06-26 | Author: Gábor Hojtsy (goba) | Assigned: unassigned | Labels: Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1303 [Suggest updated text to account for broader multilingual use case](https://git.drupalcode.org/project/canvas/-/merge_requests/1303) | State: opened | Author: Gábor Hojtsy (goba), 13 diff lines Description: Currently the default language selector setting for Canvas is force-disabled. This is the explanation: `Disabled for Canvas pages. Canvas pages must be created in the site's default language only. Translations are managed through the translation interface against the source-language page, not by creating pages in non-default languages.` But one would not only use Canvas pages in other languages for translations. Site could potentially want Canvas pages in various languages without them ever being translations of each other. A multilingual site does not necessitate content translation of any… ### [Canvas AI - fix deprecated Image import, unsupported package handling, prop/slot name collision, hardcoded error messages, and add slots support](https://git.drupalcode.org/project/canvas/-/work_items/3584136) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: AI Initiative Sprint, AI Innovation, AI Page Generation, ai Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1237 [Issue #3584136: Fix canvas_component_agent prompt bugs (Image import,...](https://git.drupalcode.org/project/canvas/-/merge_requests/1237) | State: opened | Author: Ahmad Khalil (ahmad-khalil-imagex), 1714 diff lines Description: > [!note] Migrated issue > > > > > > Reported by: [subbu94](https://www.drupal.org/user/3513305) > > Related to !907 ### Overview The `canvas_component_agent` system prompt in `ai_agents.ai_agent.canvas_component_agent.yml` contains several bugs that cause the agent to generate invalid or broken code components. These problems were surfaced across four related issues: \[#3584114\], \[#3558216\], \[#3564656\], and \[#3551659\]. This issue consolidates them so they can be fixed together in a single pass over the agent configuration. ### Acceptance criteria When this issue is resolved, the … ### [Add feature flag for content entity reference props](https://git.drupalcode.org/project/canvas/-/work_items/3591711) State: closed | Updated: 2026-06-26 | Author: Bálint Kléri (balintbrews) | Assigned: Bálint Kléri (balintbrews) | Labels: category::task, pageBuilder, priority::normal, state::fixed Description: Content entity reference props are not fully stable yet, so the code editor should only show this prop type when an explicit dev feature flag is enabled. Add a hidden `canvas_dev_er` module. When enabled, Canvas exposes `drupalSettings.canvas.devEntityReferenceMode`. The code editor should show the Content entity reference prop type only when that setting is `true`. Existing components that already use content entity reference props should continue to show that prop type so they remain editable. ### [WSOD AssertionError: assert(!$data instanceof ComponentInputsMapping) in assert() when requesting tmgmt translation job](https://git.drupalcode.org/project/canvas/-/work_items/3591734) State: opened | Updated: 2026-06-26 | Author: Gábor Hojtsy (goba) | Assigned: Narendra Singh Rathore (NarendraR) | Labels: translation Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1296 [3591734: WSOD AssertionError: assert(!$data instanceof ComponentInputsMapping) in assert() when requesting tmgmt translation job](https://git.drupalcode.org/project/canvas/-/merge_requests/1296) | State: opened | Author: Narendra Singh Rathore (NarendraR), 213 diff lines Description: I went to try Canvas 1.7.0 translation today with a brand new install of Drupal CMS Haven. I don't think the issue is due to Haven, so submitting here. I think previously this config form had separate settings under the components for the tree and inputs but that is not an option that I have for some reason, so this is how I have it set up. ![Screenshot 2026-06-26 at 11.29.44.png](https://git.drupalcode.org/-/project/19391/uploads/fe3690f7cf31f5eafd12c4cf6de93f29/Screenshot_2026-06-26_at_11.29.44.png){width="755" height="600"} I have `canvas_dev_translation` enabled and `content|config|inte… ### [Bump drupal-canvas package to 0.4.2](https://git.drupalcode.org/project/canvas/-/work_items/3591694) State: closed | Updated: 2026-06-26 | Author: Harumi Jang (hooroomoo) | Assigned: Harumi Jang (hooroomoo) | Labels: JavaScript, category::task, dependencies, priority::normal ### [Add translation data to code component data provider](https://git.drupalcode.org/project/canvas/-/work_items/3591738) State: opened | Updated: 2026-06-26 | Author: Ben Mullins (bnjmnm) | Assigned: unassigned | Labels: Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1301 [#3591738 add translation data to code component provider](https://git.drupalcode.org/project/canvas/-/merge_requests/1301) | State: opened | Author: Ben Mullins (bnjmnm), 126 diff lines Description: This would make it possible to have a language switcher code component ### [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-26 | Author: Wim Leers (wimleers) | Assigned: Christian López Espínola (penyaskito) | Labels: DX (Developer Experience), Regression, componentSources, data integrity Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1300 [chore(Data model): #3591727 Store each prop's translatability per component version so deleting an optional prop keeps config-defined component trees valid](https://git.drupalcode.org/project/canvas/-/merge_requests/1300) | State: opened | Author: Christian López Espínola (penyaskito), 795 diff lines 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 … ### [Access check when publishing auto-save items needs be performed earlier](https://git.drupalcode.org/project/canvas/-/work_items/3591736) State: opened | Updated: 2026-06-26 | Author: Feliksas Mazeikis (f.mazeikis) | Assigned: Feliksas Mazeikis (f.mazeikis) | Labels: backend, category::bug, internalHttpApi Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1302 [Access check in ApiAutoSaveController::post() should be performed earlier](https://git.drupalcode.org/project/canvas/-/merge_requests/1302) | State: opened | Author: Feliksas Mazeikis (f.mazeikis), 118 diff lines Description: With the changes in !1271 the access check happens too late in the handling of auto-save items publishing request. If a user submits a list to `ApiAutoSaveController::post()` of entities they have no access to, the entities get filtered out in `ApiAutoSaveController::getPublishableAutoSaves()` via: ``` $access = $item['entity']->access('view label', return_as_object: TRUE); ... return $access->isAllowed() && ($item['is_default_translation'] ?? TRUE); ``` This results in a s set of "publishable auto-save items" that misses the entities the user has submitted. This then fail… ### [Refactor away the confusing "dangling component tree" concept](https://git.drupalcode.org/project/canvas/-/work_items/3571785) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: Wim Leers (wimleers) | Labels: AI-accelerated, DX (Developer Experience), category::task, dataModel Description: >>> [!note] Migrated issue Reported by: [wim leers](https://www.drupal.org/user/99777) >>> Overview One of the things that @phenaproxima has expressed multiple times as being very hard to understand for somebody proficient-at-Drupal-but-new-to-Canvas, is Canvas' concept of "dangling component trees". https://git.drupalcode.org/project/canvas/-/work_items/3571116 already got us a good chunk of the way there to eliminating/eradicating this altogether. Proposed resolution Completely eradicate it. User interface changes None. > Related issue: [Issue #3571116](https://www.drupal.org/node/35711… ### [Automate MR review using PHPCS: disallow `\Drupal::service('something')`, require `\Drupal::service(Something::class)` whenever possible, with automatic fixing](https://git.drupalcode.org/project/canvas/-/work_items/3581133) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: Adam G-H (phenaproxima), Wim Leers (wimleers) | Labels: AI-accelerated, Chicago2026, DX (Developer Experience), Novice Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !1297 [#3581133: Automate MR review using PHPCS: disallow `\Drupal::service('something')`, require `\Drupal::service(Something::class)` whenever possible, with automatic fixing](https://git.drupalcode.org/project/canvas/-/merge_requests/1297) | State: opened | Author: Wim Leers (wimleers), 4716 diff lines Description: >>> [!note] Migrated issue Reported by: [wim leers](https://www.drupal.org/user/99777) Related to !797 >>> Overview :pray: Let's use the `FQCN::class` wherever we can. Reduces magic, makes it easier to navigate & understand these tests. — yours truly at https://git.drupalcode.org/project/canvas/-/merge_requests/651#note_727491 Proposed resolution Automate this feedback. User interface changes None. > Related issue: [Issue #3575719](https://www.drupal.org/node/3575719) ### [Non-Canvas (foreign) Drupal form textareas rendered inside Canvas are read-only and lose their #default_value](https://git.drupalcode.org/project/canvas/-/work_items/3591737) State: opened | Updated: 2026-06-26 | Author: Oleksandr Antonchyk (Anton4yk) | Assigned: unassigned | Labels: Description: When a Drupal form that is not one of Canvas's own react-hook-form–managed forms is rendered inside the Canvas UI (for example, content loaded into an AJAX modal dialog), its textarea fields render incorrectly in two ways. Canvas componentises such forms through hyperscriptify → DrupalTextArea → TextArea, but withRHF only enhances forms whose formId is page_data_form or component_instance_form (ui/src/components/form/react-hook-form/withRHF.tsx). For any other form, it returns the bare component, so the enhancements that those components depend on are missing. Bug 1 — … ### [CKEditor's source element is not tagged with the active text format inside Canvas, breaking modules that rely on core's editor-attach contract (e.g. ai_ckeditor)](https://git.drupalcode.org/project/canvas/-/work_items/3591735) State: opened | Updated: 2026-06-26 | Author: Oleksandr Antonchyk (Anton4yk) | Assigned: unassigned | Labels: Description: Canvas mounts CKEditor 5 through the React @ckeditor/ckeditor5-react component in ui/src/components/form/components/drupal/DrupalFormattedTextArea.tsx. Because of this, Drupal core's editor.js never runs for these editors. Core's editor.js is what normally sets data-editor-active-text-format on the editor's source element (core/modules/editor/js/editor.js). Any module th… ### [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… ### [Text-based comparison of entities](https://git.drupalcode.org/project/canvas/-/work_items/3591668) State: opened | Updated: 2026-06-26 | Author: Feliksas Mazeikis (f.mazeikis) | Assigned: Feliksas Mazeikis (f.mazeikis), Ravi Maniyar (ravi.maniyar.123) | Labels: Conflict resolution, Needs design, Needs upstream feature, auto-save Description: As part of #3587587 we need to be able to compare entities with conflicts not only using visual preview, but also using text-based side-by-side comparison. This issue adds this functionality for Page entities in Canvas. There will be an MR for BE and an MR for FE of this functionality. Designs and detailed description will be added soon. ### [Translating unpublished page crashes canvas](https://git.drupalcode.org/project/canvas/-/work_items/3591714) State: opened | Updated: 2026-06-26 | Author: Kunal Sachdev (kunal.sachdev) | Assigned: Feliksas Mazeikis (f.mazeikis) | Labels: Conflict resolution, category::bug, pageBuilder, priority::normal Description: **Overview** When a Canvas page has unpublished changes, completing a translation job for that page via the TMGMT breaks the Canvas editor UI, resulting in a 409 Conflict error. **Technical Cause** The problem is when TMGMT saves the translation as complete, it creates a new revision of the canvas page entity, which changes the revision ID. Since the original_hash stored in the auto-save no longer matches the current entity hash, Canvas flags this as a conflict and returns a 409 error. **Steps to reproduce** - Create a canvas page , add title as “Test Page“(do not publish it) - On canvas-ed… ### [Remove workaround in ApiLayoutControllerGetTest::testConfigTranslationAvailabilityLinksAndPermissions()](https://git.drupalcode.org/project/canvas/-/work_items/3591733) State: opened | Updated: 2026-06-26 | Author: Kunal Sachdev (kunal.sachdev) | Assigned: unassigned | Labels: category::task, priority::normal, state::needsReview, v1.x-dev Description: **Overview** There is a workaround to prevent locale's js_alter hook from trying to file_get_contents() the draft JS auto-save URL added in test `ApiLayoutControllerGetTest::testConfigTranslationAvailabilityLinksAndPermissions()` which was added in #3591654 and which also has a @todo to remove this workaround in #3591719 which is closed as a duplicate of #3591729 where the main issue was resolved. Now that the main issue is resolved in #3591729 so we can remove this workaround. ### [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-26 | 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()` … ### [Remove `canvas_dev_cd` flag module](https://git.drupalcode.org/project/canvas/-/work_items/3591732) State: opened | Updated: 2026-06-26 | Author: Feliksas Mazeikis (f.mazeikis) | Assigned: Feliksas Mazeikis (f.mazeikis), Ravi Maniyar (ravi.maniyar.123) | Labels: 1.x-dev, Conflict resolution, auto-save, internalHttpApi Description: In !1290 we have put the conflict detection behind the `canvas_dev_cd` module. All the other MRs in the %"Review of changes and Conflict resolution" milestone will follow suit. Once the all of the MvP items are reviewed, approved and merged - we can remove the flag. ### [Canvas AI: In-progress chat messages disappear when editing page metadata during an active run](https://git.drupalcode.org/project/canvas/-/work_items/3591731) State: opened | Updated: 2026-06-26 | Author: Abhishek Dhariwal (adaptative) | Assigned: Abhishek Dhariwal (adaptative) | Labels: state::active Description: Follow-up to #3558257. ### Problem While the AI agent is running, editing the page title or meta description removes the in-progress status messages from the chat UI. ### Steps to reproduce 1. Install Canvas AI on Drupal CMS 2 (starter recipe). 2. Open a new page and open the chatbot. 3. Prompt: `Add an "Our Plans" section for SportsFlix, a sports streaming platform`. 4. While it is still running, type in the description or title field. 5. The in-progress messages disappear from the chat UI. ### Root cause The in-progress status bubble is added imperatively in `startPolling()` via `chatEl.a… ### [Changing Metadata Clears Canvas AI Prompt Text](https://git.drupalcode.org/project/canvas/-/work_items/3558257) State: opened | Updated: 2026-06-26 | 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… --- MERGE REQUESTS (24h) --- ### [fix(deps): update npm minor and patch](https://git.drupalcode.org/project/canvas/-/merge_requests/1238) State: opened | Author: **** (project_19391_bot_cb443e60680723bba08a5351bf595251) | Branch: renovate/npm-minor-and-patch | 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](… ### [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. ### [feat(Drush): #3585531 Add commands to list, audit, and generate Canvas components](https://git.drupalcode.org/project/canvas/-/merge_requests/937) State: opened | Author: Matt Glaman (mglaman) | Branch: 3585531-provide-a-drush | 498 diff lines Description: ## Overview Adds Drush commands that mirror the component management screens at `/admin/appearance/component` and `/admin/appearance/component/status`. These give site builders and CI pipelines a scriptable way to inventory, audit, and regenerate Canvas components without the UI. ## Commands | Command | Alias | Purpose | |---------|-------|---------| | `canvas:component:list` | `canvas-component-list` | Inventory: every component config entity with its source, status, version count, and usage count. | | `canvas:component:status` | `canvas-component-status` | Compatibility verdict per compon… ### [Issue #3591737: Make foreign Drupal form textareas editable in Canvas by...](https://git.drupalcode.org/project/canvas/-/merge_requests/1299) State: opened | Author: Oleksandr Antonchyk (Anton4yk) | Branch: 3591737-non-canvas-foreign-drupal-form-textareas-rendered-inside-canvas-are-read-only-and-lose-their-default-value | 44 diff lines ### [Issue #3591735: AI CKEditor text format](https://git.drupalcode.org/project/canvas/-/merge_requests/1298) State: opened | Author: Oleksandr Antonchyk (Anton4yk) | Branch: 3591735-ckeditors-source-element-is-not-tagged-with-the-active-text-format-inside-canvas-breaking-modules-that-rely-on-cores-editor-atta | 23 diff lines ### [AI-generated.](https://git.drupalcode.org/project/canvas/-/merge_requests/797) State: closed | Author: Wim Leers (wimleers) | Branch: 3581133-automate-review-drupal-service-class-constant | 1259 diff lines Description: Closes #3581133 ### [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 | 865 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… ### [feat(Conflict detection): #3587526 "Client side prevention of publishing"](https://git.drupalcode.org/project/canvas/-/merge_requests/1018) State: opened | Author: Ravi Maniyar (ravi.maniyar.123) | Branch: 3587526-prevention-of-publishing | 200 diff lines Description: Client side changes for https://git.drupalcode.org/project/canvas/-/work_items/3587526+ This MR adds conflict handling for pending auto-save changes so users cannot publish changes that have unresolved conflicts. When a pending change is marked as conflicted, the review UI now: - Shows a conflict warning in the unpublished changes panel - Disables selection for conflicted changes - Excludes conflicted changes from Select All - Still allows non-conflicted changes to be selectively published The pending changes API response is also normalized so the frontend can handle both normal pending ch… ### [Draft: feat(Notifications, Conflict detection): #3591723 Add conflict notification...](https://git.drupalcode.org/project/canvas/-/merge_requests/1295) State: opened | Author: Ravi Maniyar (ravi.maniyar.123) | Branch: 3591715-use-notifications-to-inform-users-about-the-detected-conflicts | 1040 diff lines Description: Adds conflict notification support for detected file conflicts. * Shows a toast when pending auto-saves contain conflict items. * Keeps this separate from **`/canvas/api/v0/notifications`**. * Stores conflict notification state in localStorage to avoid repeated toast spam. * Shows the toast again if the conflict content changes. * Adds the conflict item to Activity Center and badge count. * “Resolve conflicts” opens the Review Changes conflict UI without page reload. * Uses existing color/spacing tokens for the toast styling. ## Testing instructions *  Trigger a conflict where **`/canvas/ap… ### [#3591733"Remove workaround in ApiLayoutControllerGetTest::testConfigTranslationAvailabilityLinksAndPermissions()"](https://git.drupalcode.org/project/canvas/-/merge_requests/1294) State: opened | Author: Kunal Sachdev (kunal.sachdev) | Branch: 3591733-remove-workaround-in-apilayoutcontrollergettesttestconfigtranslationavailabilitylinksandpermissions | 34 diff lines ### [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 | 1053 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… --- COMMITS (24h) --- (none) ======================================================================== ## [33] 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-26T05:00:05+00:00 to 2026-06-27T05: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: Kristen Pol (kepol), Matt Glaman (mglaman) [1], Tamas Balog (tbalog)". 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). ### [Sprint 12 CCC roadmap updates, sprint planning, and issue triage](https://git.drupalcode.org/project/ai_context/-/work_items/3586277) State: closed | Updated: 2026-06-27 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Description: ## Problem/Motivation Prioritize backlog items for the sprint to align with roadmap, releases, and project needs. --- ## Proposed resolution Groom sprint issues --- ## Target date or deadline 13 to 26 June 2026 --- ## Remaining tasks - Go through backlog and prioritize - Create new issues as needed - Identify what goes into sprint - Tune mid-sprint as needed - Update roadmap meta as needed --- ## Related issues - [#3567798: [META] CCC MVP 1.0 roadmap](https://www.drupal.org/project/ai_context/issues/3567798) - [#3586182: [META] CCC beta3 release planning](https://www.drupal.org/… ### [Move scheduler feature to submodule or progressive enhancement](https://git.drupalcode.org/project/ai_context/-/work_items/3577429) State: closed | Updated: 2026-06-27 | Author: drupalbot | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 10 Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !178 [Issue #3577429: Make Scheduler an optional progressive feature.](https://git.drupalcode.org/project/ai_context/-/merge_requests/178) | State: merged 2026-06-27 | Author: Matt Glaman (mglaman), 1163 diff lines Description: >>> [!note] Migrated issue Reported by: [kristen pol](https://www.drupal.org/user/8389) Related to !92 >>> [Tracker] Update Summary: [One-line status update for stakeholders] Check-in Date: MM/DD/YYYY Blocked by: [#XXXXXX] (New issues on new lines) Additional Collaborators: @username1, @username2 Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Follow-up to: #3569967: [Discuss] Figure out which CCC features can be optional for MVP We are trying to reduce the number of dependencies for ai_context. The scheduler is one dependency that not e… ### [Allow subcontext scope to override parent scope](https://git.drupalcode.org/project/ai_context/-/work_items/3586218) State: opened | Updated: 2026-06-27 | Author: Kristen Pol (kepol) | Assigned: unassigned | 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 ### [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-27 | 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… ### [CCC beta3 release planning](https://git.drupalcode.org/project/ai_context/-/work_items/3586182) State: opened | Updated: 2026-06-27 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 10 Description: ## Problem/Motivation Planning issue for beta3 release See the [milestone](https://git.drupalcode.org/project/ai_context/-/milestones/5#tab-issues ) for all issues. Key must have issues are listed here. --- ## Proposed Resolution **Many issues were already closed and noted here:** - #3567798: META CCC MVP 1.0 roadmap - #3577644: CCC beta1 release planning - #3585902: CCC beta2 release planning **These are the ones below have been the focus since 11 May 2026 for beta3.** --- ### Must haves _Note: Ones marked with `(*)` could be done in beta4._ #### Blocked - N/A #### Todo - #3586… ### [UX improvements on new context listing page](https://git.drupalcode.org/project/ai_context/-/work_items/3586274) State: opened | Updated: 2026-06-27 | 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… ### [Avoid Full Published-ID Scans Before Scope Prefiltering](https://git.drupalcode.org/project/ai_context/-/work_items/3586206) State: opened | Updated: 2026-06-27 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 10 Description: ## Problem/motivation Follow-up to: #3586202 _**Verify this is still an issue and the solution approach before proceeding**_ `AiContextSelector::getPrefilteredPublishedItemIds()` loads all published item IDs before applying `AiContextScopeIndexService::getItemIdsByScope()`. That means scoped agent selection can still begin with a full-catalog ID query and a large in-memory ID array, even though the scope index exists to narrow the candidate set. This should be fixed before RC1 because the common subscribed-agent path should scale with the matching scope set, not the total published cont… ### [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-27 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !195 [Issue #3586276: Rename entity bundle and target entity scope plugins for better DX](https://git.drupalcode.org/project/ai_context/-/merge_requests/195) | State: opened | Author: Tamas Balog (tbalog), 271 diff lines Description: ## Problem/solution Follow up to: #3586148+s The naming of the entity bundle and target entity scope plugins is confusing. ## Solution **AiContextScopeEntityBundle** Rename Entity Bundle => Entity Type at a code-level because there are bundleless content entities. Label: Entity Types Description: Apply this context to every entity of a chosen type, for example all Article nodes, every Document media item, or every Canvas page. Choose this when the context is true for the whole type, not a single item. **AiContextScopeTargetEntity** Rename Target Entity => Entity Item because target… ### [CCC beta / pre-rc1 community testing](https://git.drupalcode.org/project/ai_context/-/work_items/3586234) State: opened | Updated: 2026-06-27 | 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… ### [[Meta] Fix CCC issues based on AI Best Practices results](https://git.drupalcode.org/project/ai_context/-/work_items/3586298) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/motivation Follow-up to: #3586258+s Ran AI Best Practices against ai_context and found some things that need fixing: GPT 5.5 doc pulling out all the actionable things: [ai-context-actionable-fix-plan.md](https://git.drupalcode.org/-/project/191993/uploads/c3b583782d3be83fde707399a020b762/ai-context-actionable-fix-plan.md) ## Solution GPT 5.5 assessment: For RC1, I’d only block on items that affect **public API, config shape/defaults, installability, or release expectations**. Most accessibility, render-cache, and UI/test cleanup can happen after RC1 as bug/UX fixes. ### Sho… ### [Clean up CCC test and documentation consistency before rc1](https://git.drupalcode.org/project/ai_context/-/work_items/3586299) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/motivation Follow-up to: #3586258+s Parent: #3586298+s **7. Test Quality And Test Documentation** **Priority:** Medium **Why group these together:** These fixes all improve test reliability and signal. They can be split further if the test changes become large. Includes: - Context prefix default alignment. - `getManageUrl()` docs update. - Optional `hook_help()` decision/follow-up. - `tests/README.md` environment guidance. ## Solution ### 7.1 Make integration-test process metadata consistent **Files:** - `tests/README.md` - Kernel, Functional, and FunctionalJavascript … ### [Clean up CCC accessible interactive links and external links](https://git.drupalcode.org/project/ai_context/-/work_items/3586301) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/motivation Follow-up to: #3586258+s Parent: #3586298+s **2. Accessible Interactive Links And External Links** **Priority:** High **Why group these together:** These are all link-rendering issues. Fixing them together allows one consistent pattern for render-array links, new-tab warnings, and link styling. Includes: - List-builder revisions operation cacheable access result. - Revision UI boolean access checks. ## Solution ### 2.1 Replace interactive links embedded in `#markup` **Files:** - `src/Form/AiContextAgentForm.php` - `src/Form/AiContextAgentsForm.php` - `src/Pl… ### [Clean up CCC tooltip, truncation, and icon-only content](https://git.drupalcode.org/project/ai_context/-/work_items/3586302) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/motivation Follow-up to: #3586258+s Parent: #3586298+s **3. Tooltip, Truncation, And Icon-Only Content** **Priority:** High to Medium **Why group these together:** These UI patterns all expose important information through `data-ai-tooltip`, truncation, or visual icons. They should be reviewed as one accessibility pass. Includes: - Replace links in `#markup`. - Add new-tab accessible warnings and `rel`. - Fix CSS-only external-link indicator assumptions. ## Solution ### 3.1 Make tooltip-dependent content available without hover **Files:** - `templates/ai-context-pill-l… ### [Clean up CCC JavaScript filter feedback](https://git.drupalcode.org/project/ai_context/-/work_items/3586303) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/motivation Follow-up to: #3586258+s Parent: #3586298+s **4. JavaScript Filter Feedback** **Priority:** High **Why group these together:** Both filters implement similar client-side table filtering and should expose the same accessible feedback pattern. Includes: - Pill-list overflow accessible text. - Truncated description accessible text. - Icon-only indicators. - Manual assistive technology check for `ai/ai_global` tooltip behavior. ## Solution ### 4.1 Announce filtered result counts **Files:** - `js/ai_context_items_filter.js` - `js/ai_context_agents.js` **Problem:… ### [Clean up CCC form and table accessibility cleanup](https://git.drupalcode.org/project/ai_context/-/work_items/3586304) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/motivation Follow-up to: #3586258+s Parent: #3586298+s **5. Form And Table Accessibility Cleanup** **Priority:** Medium **Why group these together:** These are smaller Form API and admin UI accessibility improvements. They can be handled in one cleanup issue. Includes: - `Drupal.announce()` result counts for both JS filters. - Tests for filter announcements if feasible. ## Solution ### 5.1 Replace disabled read-only selects with text **File:** - `src/Form/AiContextAgentForm.php` **Problem:** Read-only states such as unpublished/global inclusion are rendered as disabl… ### [Clean up CCC documentation and API consistency](https://git.drupalcode.org/project/ai_context/-/work_items/3586305) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/motivation Follow-up to: #3586258+s Parent: #3586298+s **6. Documentation And API Consistency** **Priority:** High to Medium **Why group these together:** These are low-risk docs/code consistency fixes that prevent contributors from copying stale API names or relying on a fallback that differs from install defaults. Includes: - Disabled select replacements. - Help list render arrays. - Table captions. - Emoji warning cleanup. ## Solution ### 6.1 Align the default context prefix **Files:** - `config/install/ai_context.settings.yml` - `src/EventSubscriber/AiContextSystem… ### [Clean up CCC configuration policy checks](https://git.drupalcode.org/project/ai_context/-/work_items/3586306) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/motivation Follow-up to: #3586258+s Parent: #3586298+s **8. Configuration Policy Checks** **Priority:** Low to Medium **Why group these together:** These are not confirmed bugs. They should be handled as maintainer decisions or reproducibility checks before code changes. Includes: - Reproduce or dismiss simple config dependency concerns. - Confirm Scheduler dependency policy. ## Solution ### 8.1 Verify simple install config dependencies **Files:** - `config/install/ai_context.settings.yml` - `config/install/ai_context.agents.yml` - `config/install/ai_context.scope_sett… ### [Clean up CCC cacheability and access metadata](https://git.drupalcode.org/project/ai_context/-/work_items/3586300) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/motivation Follow-up to: #3586258+s Parent: #3586298+s **1. Cacheability And Access Metadata** **Priority:** High **Why group these together:** These fixes all involve Drupal render/cacheability metadata and access-result cache contexts. They should be reviewed together to avoid fixing one stale-cache path while leaving related cacheability gaps. Includes: - `AiContextOverviewController` cache metadata. - Duplicate overview query cleanup. - `AiContextRenderer` settings cache dependency. ## Solution ### 1.1 Add cache metadata to the overview page **Files:** - `src/Contr… ### [Test AI Best Practices skills on AI Context codebase](https://git.drupalcode.org/project/ai_context/-/work_items/3586258) State: closed | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | 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… ### [Add warning on subcontext edit form if parent is unpublished](https://git.drupalcode.org/project/ai_context/-/work_items/3586297) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !196 [Issue #3586297: Add warning on subcontext edit form if parent is unpublished.](https://git.drupalcode.org/project/ai_context/-/merge_requests/196) | State: opened | Author: Kristen Pol (kepol), 197 diff lines Description: ## Problem/motivation Follow-up to: #3586264+s You can unpublish a parent context item while having published subcontext items. ## Solution Show a warning. ## Acceptance criteria - [ ] If parent published and subcontext unpublished, do not show warning. - [ ] If parent unpublished and subcontext unpublished, do not show warning. - [ ] If parent published and subcontext published, do not show warning. - [ ] If parent unpublished and subcontext published, show warning. ### [[Discuss] Moderation status of subcontext vs parent context items](https://git.drupalcode.org/project/ai_context/-/work_items/3586264) State: closed | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Related MRs (already exist for this issue — check state before suggesting new contributions): - MR !193 [Issue #3586264: Show warning when subcontext parent is unpublished.](https://git.drupalcode.org/project/ai_context/-/merge_requests/193) | State: closed | Author: Kristen Pol (kepol), 204 diff lines 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) ### [hook_ai_context_scope_values_alter() is not honored in scope value forms](https://git.drupalcode.org/project/ai_context/-/work_items/3586246) State: closed | Updated: 2026-06-26 | Author: Joshua Fernandes (joshua1234511) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 11 Description: ## Problem/Motivation While integrating ai_context into the AI Empathy Evaluation module (#3583739, built on the convenience API from #3584838), the main friction was extending scope values. A downstream module that wants to add a custom value — e.g. an "empathy_evaluation" use case — has no working extension point. hook_ai_context_scope_values_alter() looks like the intended mechanism, but it is only invoked in AiContextScopeManager::getAllScopeValues(), and nothing in the module consumes getAllScopeValues(). The scope subscription UI (AiContextAgentForm) and the context item form (AiContex… ### [`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-26 | 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. -… ### [Question about "Subcontext type = Conditional - included based on relevance"](https://git.drupalcode.org/project/ai_context/-/work_items/3586149) State: closed | Updated: 2026-06-26 | Author: Michael Anello (ultimike) | Assigned: unassigned | Labels: AI Initiative Sprint, category::support, priority::normal, state::fixed 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 ### [Inject context into ai_ckeditor requests](https://git.drupalcode.org/project/ai_context/-/work_items/3581955) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: >>> [!note] Migrated issue Reported by: [jessehs](https://www.drupal.org/user/620440) Related to !116 >>> Problem/Motivation The ai_context module cannot inject scope-matched context items into ai_ckeditor AI requests because ai_ckeditor bypasses the ai_agents pipeline (and its BuildSystemPromptEvent) entirely — it calls the AI provider directly in its own streaming controller. There is no event or hook point for ai_context to intercept. This issue is the ai_context companion to the ai_ckeditor entity context and event extensibility work tracked in the drupal/ai module issue queue. … ### [[Discuss] Context scope matching semantics: additive OR, filters, and UX clarity](https://git.drupalcode.org/project/ai_context/-/work_items/3586196) State: closed | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 10 Description: ## Problem/motivation Follow-up to: #3586195 Scope subscriptions are additive. If you subscribe to use case = "working with text" and tag = "campaign", you will get context items that are scoped to either of these. Meaning, the context item doesn't need *both* of them to be relevant. ## Solution - Review existing docs and update as needed - Review UI text and consider clarifying this to the user ### [Document supported vs internal CCC APIs](https://git.drupalcode.org/project/ai_context/-/work_items/3586241) State: closed | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Description: ## Summary Follow-up to: #3586169 AI Context needs a module-wide developer doc that defines the stable public surface vs internal implementation details. Issue `#3586162` documents the **selection extension model** (pipeline events, no service decoration), but that covers only one slice of the module. **Goal:** Add a clear public/internal boundary in developer docs so contrib and site builders know what they can rely on without reading selector internals. ## Solution **Public (document as supported):** - `AiContextRequestFactory` and `AiContextRequest` / `AiContextResult` - Selector pipe… ### [Provide test context items for testing CCC](https://git.drupalcode.org/project/ai_context/-/work_items/3586244) State: closed | Updated: 2026-06-26 | Author: Michael Anello (ultimike) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 12 Description: ## Problem/motivation **Note that this issue evolved from what Mike was thinking (context items you could start with and tweak) to dummy/test context items to play with. The latter was implemented in this issue already, so the title has been updated, and we'll create a new issue for the former feature.** ### Original title Provide example context items ### Original problem/motivation It would be really helpful to provide (optional) example context items for this module. There is a mention of this in #3586175, but I wanted to open a separate issue for it because it might make sense to pr… ### [CCC beta3 QA](https://git.drupalcode.org/project/ai_context/-/work_items/3586296) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/Motivation Need a QA script for beta 3 to go through and test before the release ## Proposed resolution Create script with at least all major features covered ## Target date or deadline **6 July 2026** ## Remaining tasks - Create script - Go through QA script --- ## AI usage (if applicable) - [ ] AI Assisted Issue This issue was generated with AI assistance, but was reviewed and refined by the creator. - [ ] AI Assisted Code This code was mainly generated by a human, with AI autocompleting or parts AI generated, but under full human supervision. - [ ] AI Generate… ### [CCC beta2 QA](https://git.drupalcode.org/project/ai_context/-/work_items/3586156) State: closed | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 9 Description: > [!note] > Migrated issue > Migrated from issue #3577669 > Reported by: [kristen pol](https://www.drupal.org/user/8389) --- ## Tracker **Update Summary:** [One-line status update for stakeholders] **Check-in Date:** MM/DD/YYYY **Blocked by:** - [#XXXXXX](https://www.drupal.org/project/ai_context/issues/XXXXXX) **Additional Collaborators:** @username1, @username2 _Metadata is used by the [AI Tracker](https://www.drupalstarforge.ai/). Docs and additional fields [here](https://www.drupalstarforge.ai/ai-dashboard/docs)._ --- ## Problem/Motivation Need a QA script for beta… ### [Create CCC beta3 release](https://git.drupalcode.org/project/ai_context/-/work_items/3586295) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ### Problem/Motivation Create CCC beta3 release. Tag: `1.0.0-beta3` ### Proposed resolution Create the release once at least the must-haves are done here: - #3586182+s - [beta3 milestone](https://git.drupalcode.org/project/ai_context/-/milestones/5#tab-issues) ### Target date or deadline 6 July 2026 ### Remaining tasks - Wait on must-haves - Tag code - Create the release in UI - Celebrate! ### AI usage (if applicable) - [ ] AI Assisted Issue This issue was generated with AI assistance, but was reviewed and refined by the creator. - [ ] AI Assisted Code This code was mainly … ### [CCC beta3 codebase review (pre-release)](https://git.drupalcode.org/project/ai_context/-/work_items/3586294) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/motivation Beta3 will be released shortly. We continually need to check the codebase as it changes for potential security issues, performance issues, and any pre-rc1 features/apis that need to be addressed. ## Solution Run AI checks against the codebase to identify for pre-rc1 and post-1.0: - Important performance issues - Important feature/API gaps - Security issues (major issues will not be reported here) ## Next steps - Run security review - Run performance review - Run api/feature review - Attach findings for here (not major security issues) - Create follow-up issues as ne… ### [Create CCC beta2 release](https://git.drupalcode.org/project/ai_context/-/work_items/3585920) State: closed | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 9 Description: >>> [!note] Migrated issue Reported by: [kristen pol](https://www.drupal.org/user/8389) >>> [Tracker] Update Summary: [One-line status update for stakeholders] Check-in Date: MM/DD/YYYY Blocked by: [#XXXXXX] (New issues on new lines) Additional Collaborators: @username1, @username2 Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem/Motivation Create CCC beta2 release Tag: 1.0.0-beta2 Proposed resolution Create the release once at least the must-haves are done here: #3585902: CCC beta2 release planning Target date or deadline 4 May 2026 Remaining tasks … ### [CCC beta2 codebase review](https://git.drupalcode.org/project/ai_context/-/work_items/3586202) State: closed | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 9 Description: ## Problem/motivation Beta2 will be released shortly. We continually need to check the codebase as it changes for potential security issues, performance issues, and any pre-rc1 features/apis that need to be addressed. ## Solution Run AI checks against the codebase to identify for pre-rc1 and post-1.0: - Important performance issues - Important feature/API gaps - Security issues (these will not be reported here) ## Next steps - Run security review - Run performance review - Run api/feature review - Attach findings for here (not security) - Create follow-up issues as needed ### [[Discuss] Add boundaries / exclusions to scope plugins](https://git.drupalcode.org/project/ai_context/-/work_items/3586197) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Innovation, AI Sprint 10, AI Sprint 11 Description: ## Problem/motivation Follow-up to: #3586195 Boundaries / exclusions were discussed quite a bit in the past, but hasn't been implemented yet. Example context item: - Tone and voice - Scope - Use case = Writing Words - Entity bundle = exclude for Support Notes (content type) Translation: The context will be applicable to any agent subscription with use case = writing words unless it's a node that's a Support Notes content type ## Solution Add an exclusion option for each scope item and bake that into the logic Could be a dropdown per scope item: - None (neutral/default) - Include… ### [Sprint 13 CCC roadmap updates, sprint planning, and issue triage](https://git.drupalcode.org/project/ai_context/-/work_items/3586293) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: Kristen Pol (kepol) | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 13 Description: ## Problem/Motivation Prioritize backlog items for the sprint to align with roadmap, releases, and project needs. --- ## Proposed resolution Groom sprint issues --- ## Target date or deadline 27 to 10 July 2026 --- ## Remaining tasks - Go through backlog and prioritize - Create new issues as needed - Identify what goes into sprint - Tune mid-sprint as needed - Update roadmap meta as needed --- ## Related issues - [#3567798: [META] CCC MVP 1.0 roadmap](https://www.drupal.org/project/ai_context/issues/3567798) - [#3586182: [META] CCC beta3 release planning](https://www.drupal.org/… ### [Evaluate Annotations module and how it might work with CCC](https://git.drupalcode.org/project/ai_context/-/work_items/3586268) State: opened | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Innovation, AI Sprint 13, blocker::stable Description: ## Problem/motivation The new [Annotations module](https://www.drupal.org/project/annotations) has overlap with CCC. ### Video From NikLP: No demo videos yet but how y'all feel about a gen AI video outlining my new module suite? :smiling_face_with_tear: https://www.linkedin.com/posts/niklepage_drupal-activity-7469809314463891456-j8u8/ ### Nik's integration approach [ai_context-local.patch](https://git.drupalcode.org/-/project/191993/uploads/5591cdf6801c901c1d6bc021f4975b60/ai_context-local.patch) [adr-ai-context-provider.md](https://git.drupalcode.org/-/project/191993/uploads/75577ae14… ### [Update CCC overview page with hide option and new wording](https://git.drupalcode.org/project/ai_context/-/work_items/3586211) State: closed | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 10 Description: Follow up to: #3573715 ## Problem/motivation 1. Right now you can disable showing the overview page by going to the general settings. It is useful to be able to also hide it when you are on the page and then the Context Items page because the main page. 2. Also, the text on the page isn't that user friendly. ## Solution 1. Add a "Hide this overview" link or button on the page. We will keep the option on the general settings if they want to add it back. 2. Change the welcome text to something like: **Context Control Center** Context Items are reusable pieces of information that your AI … ### [Handle the case when scope plugin values are no longer available](https://git.drupalcode.org/project/ai_context/-/work_items/3586145) State: closed | Updated: 2026-06-26 | Author: Kristen Pol (kepol) | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 9 Description: **Problem:** Scope values can disappear after context items or agents have already selected them. For example: - A context item targets `node:1234`, then that node is deleted. - A context item or agent subscribes to the `hr` site section, then that site section is removed. - A context item or agent uses the `foobar` AI context tag, then that tag term is deleted. When this happens, the module should gracefully remove stale values from stored context item scope, agent scope subscriptions, and any related selection indexes. Target entity references should also be removed when the target entity… ### [Clean up follow-ups from target entity decoupling review](https://git.drupalcode.org/project/ai_context/-/work_items/3586082) State: closed | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: AI Context Management, AI Initiative Sprint, AI Innovation, AI Sprint 10 Description: >>> [!note] Migrated issue Reported by: [kristen pol](https://www.drupal.org/user/8389) >>> **Problem/Motivation** There was out-of-scope feedback on: #3577428 Feedback (PDF) Feedback (MD) **Description:** Follow up on the non-blocking items identified during the target entity / DER decoupling review. The MR made `dynamic_entity_reference` optional successfully, but a few cleanup tasks remain to reduce optional dependency coupling, improve documentation, and tighten safer render/input patterns. **Tasks:** - Remove the `DynamicEntityReferenceItem` import/reference from `AiContextItem:… --- MERGE REQUESTS (24h) --- ### [Issue #3586274: Merge Use cases/Scope columns and add cascading scope filter](https://git.drupalcode.org/project/ai_context/-/merge_requests/184) State: opened | Author: Matt Glaman (mglaman) | Branch: 3586274-issue-branch | 1135 diff lines Description: ## Description Implements the finalized UX from the 17 June review (see issue), following up #3586219. **Columns** - Merge the **Use cases** and **Scope** columns into a single **Scopes** column. Pills are ordered as on the edit page (scope plugins are weight-sorted, so Use Cases lead). **Filters** - Remove the standalone **Use cases** filter. - Replace the single scope filter with a cascade: - First select: scope name (ordered as the edit page), defaulting to **All scopes**. - Second select: values for the chosen scope, defaulting to **All**. With "All scopes" selected it lists every… --- COMMITS (24h) --- - [fdb5b4a0](https://git.drupalcode.org/project/ai_context/-/commit/fdb5b4a0f9e81ace3dce7fc36d1bf1976de74c22) Issue #3577429: Make Scheduler an optional progressive feature. — Matt Glaman (2026-06-27T02:11:36.000+00:00) ======================================================================== ## [34] summariseModule:ai_search:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: AI Search (machine name: ai_search) Reporting period: last 24h (2026-06-26T05:00:05+00:00 to 2026-06-27T05: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-27 | 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) ======================================================================== ## [35] 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-26T05:00:05+00:00 to 2026-06-27T05: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: 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). ### [Field Widget Button labels are not translatable via UI](https://git.drupalcode.org/project/field_widget_actions/-/work_items/3578824) State: opened | Updated: 2026-06-26 | Author: drupalbot | Assigned: unassigned | Labels: category::bug, priority::normal, state::accepted Description: >>> [!note] Migrated issue Reported by: [fago](https://www.drupal.org/user/16747) >>> [Tracker] Update Summary: Field Widget Button labels are not translatable via UI Short Description: Button labels in field widget actions are configured via entity-form-displays. However, entity form displays have no UI for configuring translations, thus, there is no dedicated page and no entry at /admin/config/regional/config-translation Check-in Date: MM/DD/YYYY Metadata is used by the AI Tracker. Docs and additional fields here. [/Tracker] Problem Button labels in field widget actions are configured vi… --- MERGE REQUESTS (24h) --- ### [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) | Branch: 3578204-support-for-checkboxes-and-radio-buttons | 433 diff lines Description: Closes #3578204 --- COMMITS (24h) --- (none) ======================================================================== ## [36] 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-26T05:00:05+00:00 to 2026-06-27T05: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)". 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) --- ### [feat: #3582452 Add guardrail set selection to ai_search_block](https://git.drupalcode.org/project/ai_search_block/-/merge_requests/44) State: opened | Author: Abhisek Mazumdar (abhisekmazumdar) | Branch: 3582452-add-guardrail-set | 800 diff lines Description: By: nikro Closes #3582452 --- COMMITS (24h) --- (none) ======================================================================== ## [37] summariseModule:langfuse:executive ======================================================================== You are a technical writer producing a newsletter section about recent Drupal module activity. Module: Langfuse (machine name: langfuse) Reporting period: last 24h (2026-06-26T05:00:05+00:00 to 2026-06-27T05: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

                                                                  Langfuse

                                                                  then use

                                                                  ,

                                                                  ,

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

                                                                    How can I help on this project?

                                                                    " aimed at a non-technical executive. Suggest 2-3 concrete, high-level ways a leader could support or unblock progress (e.g. resourcing, stakeholder alignment, decision-making, funding, advocacy). Keep it under 60 words. Do not add any other 'How can I help' text anywhere else in the section. CRITICAL: Before writing each suggestion, verify it against the issue data. Do not suggest actions that are already in progress or covered by an existing MR — for example, do not suggest that work needs to be started if an issue already has a Related MR. --- ISSUES UPDATED IN LAST 24h --- Each issue includes its description (for context) and the most recent comments from the last 24h (or last 5 if fewer than 5 occurred in that window). (none) --- MERGE REQUESTS (24h) --- ### [Automated Project Update Bot fixes](https://git.drupalcode.org/project/langfuse/-/merge_requests/5) State: opened | Author: project update bot (Project-Update-Bot) | Branch: project-update-bot-only | 179 diff lines Description: Relates to #3599498. This merge request was automatically created by the Project Update Bot. It contains the changes from run 12-864040. --- COMMITS (24h) --- (none) ======================================================================== ## [38] 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] Batch embeddings for improved indexing performance (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3568648 [2] Add interactive refinement capability to Field Widget Actions (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586468 [3] Uninstalling ai_ckeditor leaves stale toolbar items in editor.editor.* configuration (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586570 [4] Support the `ai_json_schema` element inside off-canvas dialogs (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586536 [5] Field Widget Button labels are not translatable via UI (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3567027 [6] Tone of voice CKEditor Plugin does not use the translated version of the linked taxonomy (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586573 [7] Add ai_budget_control to the ecosystem / related modules list (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3583958 [8] Suggest Tags automator should work with Tagify (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3536912 [9] Document the AI module ecosystem: a categorized list of related modules with links and summaries (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586482 [10] Save AI Content Suggestion plugin settings inside ai_content_suggestions.settings config object (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586437 [11] Validation of unexisting fields on paragraphs actions (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3571033 [12] ai_content_suggestions: On-focus button un-hide rule misses .field-widget-action-widget-button for field--type-string-long (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3583883 [13] Add info about initiative and release differences to project page (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586568 [14] Add a deterministic script to auto-generate the providers/operation-types matrix from GitLab (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586488 [15] Add metadata (token usage and rate limits) to ChatGenerator in AI API Explorer (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586572 [16] Introduce a modern AI Chatbot frontend library (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586571 [17] Add metadata to VectorDBGenerator in AI-API-Explorer (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3549175 [18] Add an AI reranking processor for Search API (owned by the AI module) (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586543 [19] Add Functional Tests for AI CKEditor (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3477173 [20] ai_ckeditor: Add option to show or hide the "AI Writer" status information (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586569 [21] Tools UI overview page does not load (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3579979 [22] Batch embeddings for improved indexing performance (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1704 [23] ai-3586569: ai_ckeditor: Add option to show or hide the "AI Writer" status information (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1728 [24] 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 [25] fix(ai_ckeditor): remove stale toolbar items on uninstall and warn on confirm page (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1731 [26] fix: #3586573 Tone of voice CKEditor Plugin does not use the translated... (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1730 [27] Resolve "Add a deterministic script to auto-generate the providers/operation-types matrix from GitLab" (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1645 [28] Issue #3586543: Add AI reranking processor for Search API. (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1729 [29] Issue #3477173: Add functional tests for AI CKEditor (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1302 [30] Add AICKeditor tests (Target 1.4.x) (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1577 [31] Added Functional JavaScript Tests (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1257 [32] fix: ai_ckeditor: Add option to show or hide the "AI Writer" status information (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1727 [33] Source case studies from AI Summit Rotterdam (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3586557 [34] [Meta] Cover remaining AI operation types with ECA execute actions (ai_integration_eca, Issue) — https://git.drupalcode.org/project/ai_integration_eca/-/work_items/3585013 [35] Add ECA execute action for Translate Text (ai_integration_eca, Issue) — https://git.drupalcode.org/project/ai_integration_eca/-/work_items/3585012 [36] Resolve #3593019 "Add imagetoimage possibilities" (ai_provider_openai, MR) — https://git.drupalcode.org/project/ai_provider_openai/-/merge_requests/72 [37] Issue #3590963: Bump SDK constraint and drop method_exists defensive check (ai_provider_anthropic, MR) — https://git.drupalcode.org/project/ai_provider_anthropic/-/merge_requests/28 [38] Automated Project Update Bot fixes (mcp_client, MR) — https://git.drupalcode.org/project/mcp_client/-/merge_requests/19 [39] Add support for batch embeddings (gemini_provider, Issue) — https://git.drupalcode.org/project/gemini_provider/-/work_items/3589183 [40] Support batch embeddings (gemini_provider, MR) — https://git.drupalcode.org/project/gemini_provider/-/merge_requests/37 [41] add support for batching on indexing operations (ai_vdb_provider_milvus, MR) — https://git.drupalcode.org/project/ai_vdb_provider_milvus/-/merge_requests/44 [42] Automated Drupal 12 compatibility fixes for mcp 1.x-dev (mcp, Issue) — https://git.drupalcode.org/project/mcp/-/work_items/3587790 [43] Automated Project Update Bot fixes (mcp, MR) — https://git.drupalcode.org/project/mcp/-/merge_requests/53 [44] Dependency Dashboard (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591657 [45] Boolean field values resetting when using Patterns (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591637 [46] Boolean prop values not retained correctly on SDC components with multiple boolean props (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591697 [47] Boolean props auto-enable when another prop is changed in the Canvas form (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591716 [48] Cast transform treats serialized "0" as true for boolean props (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591739 [49] Add Code Component prop type for multiline plain text (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591741 [50] Canvas Page Preview Fails After Language Code Update for Existing Translations (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591713 [51] 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 [52] Fix explanation of lack of Canvas page language support to account for varied use cases (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591740 [53] Canvas AI - fix deprecated Image import, unsupported package handling, prop/slot name collision, hardcoded error messages, and add slots support (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3584136 [54] Add feature flag for content entity reference props (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591711 [55] WSOD AssertionError: assert(!$data instanceof ComponentInputsMapping) in assert() when requesting tmgmt translation job (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591734 [56] Bump drupal-canvas package to 0.4.2 (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591694 [57] Add translation data to code component data provider (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591738 [58] 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 [59] Access check when publishing auto-save items needs be performed earlier (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591736 [60] Refactor away the confusing "dangling component tree" concept (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3571785 [61] Automate MR review using PHPCS: disallow `\Drupal::service('something')`, require `\Drupal::service(Something::class)` whenever possible, with automatic fixing (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3581133 [62] Non-Canvas (foreign) Drupal form textareas rendered inside Canvas are read-only and lose their #default_value (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591737 [63] CKEditor's source element is not tagged with the active text format inside Canvas, breaking modules that rely on core's editor-attach contract (e.g. ai_ckeditor) (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591735 [64] 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 [65] Text-based comparison of entities (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591668 [66] Translating unpublished page crashes canvas (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591714 [67] Remove workaround in ApiLayoutControllerGetTest::testConfigTranslationAvailabilityLinksAndPermissions() (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591733 [68] 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 [69] Remove `canvas_dev_cd` flag module (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591732 [70] Canvas AI: In-progress chat messages disappear when editing page metadata during an active run (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591731 [71] Changing Metadata Clears Canvas AI Prompt Text (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3558257 [72] fix(deps): update npm minor and patch (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1238 [73] Access check in ApiAutoSaveController::post() should be performed earlier (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1302 [74] fix(Internal HTTP API, Translation): #3591713 Fix Canvas page preview for translated pages when the URL prefix differs from the langcode (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1304 [75] Suggest updated text to account for broader multilingual use case (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1303 [76] feat(CLI Tool): Clean up the output of all CLI commands (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1280 [77] Issue #3584136: Fix canvas_component_agent prompt bugs (Image import,... (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1237 [78] 3591734: WSOD AssertionError: assert(!$data instanceof ComponentInputsMapping) in assert() when requesting tmgmt translation job (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1296 [79] chore(Data model): #3591727 Store each prop's translatability per component version so deleting an optional prop keeps config-defined component trees valid (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1300 [80] #3591738 add translation data to code component provider (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1301 [81] feat(Drush): #3585531 Add commands to list, audit, and generate Canvas components (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/937 [82] #3581133: Automate MR review using PHPCS: disallow `\Drupal::service('something')`, require `\Drupal::service(Something::class)` whenever possible, with automatic fixing (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1297 [83] Issue #3591737: Make foreign Drupal form textareas editable in Canvas by... (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1299 [84] Issue #3591735: AI CKEditor text format (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1298 [85] 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 [86] AI-generated. (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/797 [87] feat(Conflict detection): #3587526 "Detect conflicts during publishing of changes to Page entity" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1193 [88] feat(Conflict detection): #3587526 "Client side prevention of publishing" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1018 [89] Draft: feat(Notifications, Conflict detection): #3591723 Add conflict notification... (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1295 [90] #3591733"Remove workaround in ApiLayoutControllerGetTest::testConfigTranslationAvailabilityLinksAndPermissions()" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1294 [91] 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 [92] Sprint 12 CCC roadmap updates, sprint planning, and issue triage (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586277 [93] Move scheduler feature to submodule or progressive enhancement (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3577429 [94] Allow subcontext scope to override parent scope (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586218 [95] 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 [96] CCC beta3 release planning (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586182 [97] UX improvements on new context listing page (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586274 [98] Avoid Full Published-ID Scans Before Scope Prefiltering (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586206 [99] Rename entity bundle and target entity scope plugins for better DX (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586276 [100] CCC beta / pre-rc1 community testing (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586234 [101] [Meta] Fix CCC issues based on AI Best Practices results (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586298 [102] Clean up CCC test and documentation consistency before rc1 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586299 [103] Clean up CCC accessible interactive links and external links (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586301 [104] Clean up CCC tooltip, truncation, and icon-only content (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586302 [105] Clean up CCC JavaScript filter feedback (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586303 [106] Clean up CCC form and table accessibility cleanup (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586304 [107] Clean up CCC documentation and API consistency (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586305 [108] Clean up CCC configuration policy checks (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586306 [109] Clean up CCC cacheability and access metadata (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586300 [110] Test AI Best Practices skills on AI Context codebase (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586258 [111] Add warning on subcontext edit form if parent is unpublished (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586297 [112] [Discuss] Moderation status of subcontext vs parent context items (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586264 [113] hook_ai_context_scope_values_alter() is not honored in scope value forms (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586246 [114] `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 [115] Question about "Subcontext type = Conditional - included based on relevance" (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586149 [116] Inject context into ai_ckeditor requests (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3581955 [117] [Discuss] Context scope matching semantics: additive OR, filters, and UX clarity (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586196 [118] Document supported vs internal CCC APIs (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586241 [119] Provide test context items for testing CCC (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586244 [120] CCC beta3 QA (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586296 [121] CCC beta2 QA (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586156 [122] Create CCC beta3 release (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586295 [123] CCC beta3 codebase review (pre-release) (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586294 [124] Create CCC beta2 release (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3585920 [125] CCC beta2 codebase review (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586202 [126] [Discuss] Add boundaries / exclusions to scope plugins (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586197 [127] Sprint 13 CCC roadmap updates, sprint planning, and issue triage (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586293 [128] Evaluate Annotations module and how it might work with CCC (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586268 [129] Update CCC overview page with hide option and new wording (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586211 [130] Handle the case when scope plugin values are no longer available (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586145 [131] Clean up follow-ups from target entity decoupling review (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586082 [132] Issue #3577429: Make Scheduler an optional progressive feature. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/178 [133] Issue #3586274: Merge Use cases/Scope columns and add cascading scope filter (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/184 [134] Issue #3586276: Rename entity bundle and target entity scope plugins for better DX (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/195 [135] Issue #3586297: Add warning on subcontext edit form if parent is unpublished. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/196 [136] Issue #3586264: Show warning when subcontext parent is unpublished. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/193 [137] Batch embeddings for improved indexing performance (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584024 [138] Resolve "Batch embeddings for improved indexing performance" (ai_search, MR) — https://git.drupalcode.org/project/ai_search/-/merge_requests/53 [139] Field Widget Button labels are not translatable via UI (field_widget_actions, Issue) — https://git.drupalcode.org/project/field_widget_actions/-/work_items/3578824 [140] 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 [141] feat: #3582452 Add guardrail set selection to ai_search_block (ai_search_block, MR) — https://git.drupalcode.org/project/ai_search_block/-/merge_requests/44 [142] Automated Project Update Bot fixes (langfuse, MR) — https://git.drupalcode.org/project/langfuse/-/merge_requests/5 --- MODULE SUMMARIES ---

                                                                      AI (Artificial Intelligence)

                                                                      Development this period focused on improving the CKEditor integration, consolidating configuration architecture, and expanding the Search API ecosystem. One significant piece of work merged: functional tests for the AI CKEditor module were added to the 1.4.x release branch, strengthening quality assurance for the text editor integration.

                                                                      Several improvements to the CKEditor user experience are in progress. Work is underway to warn users when no AI provider is installed, preventing confusion when the feature fails silently. Another change will allow administrators to hide the "AI Writer: Idle" status indicator if they prefer a cleaner interface. A third effort addresses a bug where uninstalling the CKEditor module left behind broken toolbar references, causing configuration pages to fail.

                                                                      On the architecture side, configuration for AI Content Suggestions plugins is being consolidated into a single settings object to simplify instantiation and reduce overhead. Work is also progressing to allow the JSON schema form element to function correctly inside off-canvas dialogs, expanding its usability beyond full-page forms.

                                                                      Two new capabilities are being developed. A reranking processor for Search API is in progress, allowing any Search API backend to re-order results using AI models for improved precision. A batch embeddings feature is also underway to speed up indexing by processing multiple content chunks at once rather than sequentially.

                                                                      Documentation and ecosystem visibility work continues, including a request to add the ai_budget_control module to the related projects list (now closed), and ongoing efforts to create a curated catalog of the growing number of companion modules, providers, and distributions.

                                                                      How can I help on this project?

                                                                      • Review and prioritize the backlog of open configuration and user experience improvements to identify which issues most directly block adoption for new users.
                                                                      • Clarify the release roadmap and communicate the differences between minor versions (1.2, 1.3, 1.4) and the upcoming 2.0 to help developers choose the right version.

                                                                      Contributors: Abhisek Mazumdar (abhisekmazumdar), AKHIL BABU (AkhilBabu) [1], Artem Dmitriiev (a.dmitriiev), Hrishikesh Dalal (hrishikesh-dalal), Marcus Johansson (Marcus_Johansson), Mukeysh, Ricardo Castañeda (cadence96), Thomas Werthmüller (weri), velmir_taky (root_emarketing)

                                                                      ---

                                                                      Drupal AI Initiative

                                                                      Activity this period was limited to planning work. Progress continued on sourcing real-world case studies from the upcoming Enterprise AI Summit in Rotterdam, scheduled for September. The initiative is working to identify new examples of organizations using Drupal with AI capabilities, which will help demonstrate the platform's viability for AI-enabled projects. Access to session submissions has been secured, and the focus is now on reviewing these submissions to identify suitable case studies and establishing contact with the organizations behind them. This outreach will support future marketing efforts, including webinars and published articles showcasing practical applications of Drupal in AI contexts.

                                                                      No code changes or technical work were completed during this reporting period.

                                                                      How can I help on this project?

                                                                      • Provide resources to accelerate case study curation and outreach once submissions are reviewed, ensuring timely engagement with potential showcase partners before the September summit.
                                                                      • Support executive-level introductions to organizations identified in the submissions to facilitate higher-quality conversations about their Drupal AI implementations.
                                                                      ---

                                                                      AI Integration - ECA

                                                                      Planning work advanced this period to expand automation capabilities. The module currently supports building automation workflows for 5 AI operations (chat, content moderation, speech conversion, and text embedding). A roadmap was opened to extend coverage to the remaining 13 operation types exposed by the underlying AI platform, enabling users to automate a wider range of AI tasks without custom development. This work is flagged as part of the path to a stable 1.0 release.

                                                                      Within that scope, a specific task for translation automation was opened. Once delivered, this will allow workflows to trigger text translation between languages directly, supporting multilingual content strategies through visual workflow tools rather than code.

                                                                      No code was merged this period; the activity reflects planning and issue structuring. Both issues remain unassigned, which is typical for early-stage modules organizing their development backlog.

                                                                      How can I help on this project?

                                                                      • Assign developer capacity to the translation and broader operation-type expansion work to accelerate delivery of the 1.0 release.
                                                                      • Clarify business priority among the 13 planned operation types to sequence development effort where user demand is highest.
                                                                      ---

                                                                      OpenAI Provider

                                                                      The OpenAI Provider module achieved a significant capability expansion during this period. The image-to-image functionality was merged, enabling users to generate new images from existing images. This extends the module's AI capabilities beyond text-based interactions, opening new use cases for content creation and visual asset transformation.

                                                                      The merge represents a substantial addition to the module's feature set, with over 300 lines of changes integrated. This positions the module to serve a broader range of business needs where visual content generation is required.

                                                                      No critical issues or blockers emerged during this period. Development momentum remains steady as the module continues to expand its AI service offerings.

                                                                      How can I help on this project?

                                                                      • Identify internal stakeholders who could pilot the new image generation capabilities to validate real-world use cases and gather feedback.
                                                                      • Assess whether additional resources are needed to accelerate testing and documentation now that the feature set is expanding.
                                                                      Contributors: Marcus Johansson (Marcus_Johansson) ---

                                                                      Anthropic Provider

                                                                      The Anthropic Provider module advanced this period with the completion of work enabling prompt caching and PDF document support. The SDK constraint and method check update was merged, delivering two important capabilities: administrators can now enable prompt caching through a simple toggle in the settings interface, choosing between short- or long-duration cache lifetimes to optimize performance and reduce costs; and the system can now accept PDF documents as input, expanding the types of content the module can process.

                                                                      These enhancements make the module more flexible and cost-efficient for organizations using AI capabilities in their Drupal sites. Prompt caching allows frequently-used content to be reused without repeated processing, while PDF support broadens the range of business documents that can be analyzed or summarized.

                                                                      How can I help on this project?

                                                                      • Consider prioritizing testing resources to validate the new caching and PDF features in realistic business scenarios before wider deployment.
                                                                      • Evaluate whether the expanded capabilities align with strategic needs for document processing or content workflows that could benefit from AI integration.

                                                                      Contributors: Carlos Ospina (camoa)

                                                                      ---

                                                                      Fireworks AI

                                                                      The Fireworks AI module saw maintenance activity during this period, with three commits focused on addressing requirements and implementing reranking functionality using standardized base components. These changes appear to improve the module's compliance with project standards and enhance its core capabilities.

                                                                      With no open issues or merge requests flagged during this period, development appears to be proceeding in a straightforward maintenance mode. The module continues its early-stage development trajectory without any blocking concerns.

                                                                      How can I help on this project?

                                                                      • Consider allocating resources for user testing or feedback collection to validate whether the module meets real-world business needs.
                                                                      • Assess whether the project would benefit from documentation investment to support adoption and reduce integration barriers.

                                                                      Contributors: Marcus Johansson [3]

                                                                      ---

                                                                      MCP Client

                                                                      Activity this period was limited to automated maintenance. A merge request for automated project updates was opened, containing maintenance changes generated by the project's update automation. No substantial feature development, bug fixes, or user-facing improvements were delivered during this 24-hour window.

                                                                      The module continues in its current state with no new releases or progress toward stability milestones in this period.

                                                                      How can I help on this project?

                                                                      Consider evaluating whether the project has adequate resourcing and clear priorities for moving toward a stable release. If the module is strategic, ensuring dedicated development capacity and a defined roadmap would help accelerate progress and delivery of business value.

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

                                                                      ---

                                                                      Gemini Provider

                                                                      This module integrates Google's Gemini AI capabilities into Drupal. Development activity this period focused on expanding the module's efficiency when processing large volumes of content.

                                                                      A new merge request was opened to enable batch embeddings processing. This enhancement will allow the system to convert multiple pieces of content into machine-readable formats in a single operation, rather than processing them one at a time. For sites handling significant content volumes or large-scale AI operations, this represents a meaningful performance improvement and cost reduction. The work is currently under review.

                                                                      The module remains in active development as part of the broader AI Initiative, with this feature building on previous embedding capabilities.

                                                                      How can I help on this project?

                                                                      • Ensure the team has sufficient review capacity to evaluate and merge the batch embeddings work, which could deliver immediate performance benefits.
                                                                      • Clarify priority and timeline expectations for advancing the module toward a stable release suitable for production use.

                                                                      Contributors: Artem Dmitriiev (a.dmitriiev)

                                                                      ---

                                                                      Milvus VDB Provider

                                                                      Development continues on this module, which enables Drupal sites to use Milvus as a vector database provider for AI-driven search and content discovery capabilities.

                                                                      A new merge request has been opened to add support for batching on indexing operations. This enhancement will allow the system to process multiple items at once when building search indexes, which should improve performance and reduce the time required to make content searchable. This is particularly valuable for sites with large content libraries that need efficient indexing.

                                                                      The merge request is currently under review. No other issues or commits were recorded during this period.

                                                                      How can I help on this project?

                                                                      • Ensure development resources are available to review and test the batching enhancement to accelerate its delivery.
                                                                      • Identify pilot use cases or content-heavy sites that could benefit from improved indexing performance to validate the work.

                                                                      Contributors: Artem Dmitriiev (a.dmitriiev)

                                                                      ---

                                                                      Model Context Protocol

                                                                      The Model Context Protocol module is undergoing preparation for compatibility with Drupal 12. An automated Drupal 12 compatibility issue has been created to track the removal of deprecated functionality, with a corresponding merge request submitted containing compatibility updates. This work ensures the module will continue functioning when Drupal's next major version is released.

                                                                      No commits were merged during this period. The compatibility work is being handled through automated tooling that identifies deprecated code patterns and proposes updates. This is standard housekeeping for modules transitioning between Drupal core versions.

                                                                      How can I help on this project?

                                                                      • Allocate developer time to review and validate the automated compatibility fixes to accelerate Drupal 12 readiness.
                                                                      • Clarify the roadmap and timeline for achieving a stable release, which would help prioritize compatibility work.

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

                                                                      ---

                                                                      Drupal Canvas

                                                                      Development activity this period focused on resolving issues with boolean properties in components, advancing conflict detection capabilities, and addressing translation workflow bugs.

                                                                      Several boolean property bugs were identified and addressed. Work progressed on fixes for issues where boolean values reset when using patterns, auto-enable when other properties change, and are incorrectly cast when serialized as "0". A feature flag was implemented for content entity reference properties, allowing this experimental capability to remain hidden until fully stable.

                                                                      The conflict detection and resolution system saw significant progress. Backend support was added for detecting conflicts during page publishing, returning HTTP 409 responses when conflicts are present. Client-side handling now prevents users from publishing conflicted changes while still allowing non-conflicted items to proceed. The review interface was enhanced to clearly mark conflicted items and exclude them from bulk selection. Work also advanced on resolving conflicts via API and loading visual previews of both auto-save and published versions.

                                                                      Translation support received attention following reports of preview failures after language code updates and crashes when translating unpublished pages. Fixes address how Canvas handles URL prefixes that differ from language codes and revision-related conflicts triggered by translation job completion.

                                                                      A large refactoring to enforce service references using class constants rather than strings was merged, improving code navigation and reducing magic strings across the codebase.

                                                                      How can I help on this project?

                                                                      • Prioritize review bandwidth for conflict detection merge requests currently in progress, as this capability is critical for multi-editor workflows.
                                                                      • Consider allocating resources to complete the text-based entity comparison feature, which requires both backend and frontend work plus design input.

                                                                      Contributors: **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Ahmad Khalil (ahmad-khalil-imagex), Ben Mullins (bnjmnm), Bálint Kléri (balintbrews), Christian López Espínola (penyaskito), Feliksas Mazeikis (f.mazeikis), Gábor Hojtsy (goba), Kunal Sachdev (kunal.sachdev), Matt Glaman (mglaman), Narendra Singh Rathore (NarendraR), Oleksandr Antonchyk (Anton4yk), Ravi Maniyar (ravi.maniyar.123), Wim Leers (wimleers)

                                                                      ---

                                                                      Context Control Center (CCC)

                                                                      The module continued progress toward its beta3 release, which is targeted for early July 2026. Sprint 12 planning closed on schedule, and Sprint 13 is now underway. Key work this period included simplifying dependency management and addressing technical quality ahead of the release candidate milestone.

                                                                      The scheduler feature was moved to a submodule, making it an optional progressive enhancement rather than a required dependency. This reduces installation complexity and lets sites adopt scheduling only when needed.

                                                                      An internal code review based on automated best practices checks was completed, generating a structured set of follow-up issues covering accessibility, documentation, test consistency, and caching behavior. These issues are now queued for resolution before the release candidate, with prioritization focused on items affecting the public API, configuration, or stable expectations.

                                                                      Work is also in progress to improve the user interface for context listings, including merging scope and use case columns into a unified view and introducing cascading filters for easier navigation. Planning for beta3 quality assurance and the beta3 release itself are both underway, with community testing still open for feedback.

                                                                      How can I help on this project?

                                                                      Consider resourcing manual QA support for the beta3 testing script to accelerate the release timeline. If feasible, advocate within the community for broader testing participation to surface edge cases before RC1. Review the accessibility and documentation cleanup queue to identify any that may require design or policy decisions rather than just code fixes.

                                                                      Contributors: Kristen Pol (kepol), Matt Glaman (mglaman) [1], Tamas Balog (tbalog)

                                                                      ---

                                                                      AI Search

                                                                      The AI Search module saw focused development work on improving indexing performance through batched processing of content embeddings. A Batch embeddings for improved indexing performance issue was created and development began through an associated merge request containing over 700 lines of changes. This work ports functionality from the broader AI initiative, as the standalone ai_search submodule is being consolidated into the main AI framework.

                                                                      For users, batch processing means the system can handle indexing large volumes of content more efficiently, reducing processing time and server load when making content searchable. This is particularly valuable for organizations with extensive content libraries or those performing bulk updates.

                                                                      The work is currently in progress and has not yet been merged or deployed. No blocking issues were reported during this period.

                                                                      How can I help on this project?

                                                                      • Ensure adequate resources are allocated for testing the batch processing changes once the merge request is ready for review.
                                                                      • Clarify the strategic roadmap for consolidating AI Search into the core AI framework to guide ongoing migration decisions.

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

                                                                      ---

                                                                      Field Widget Actions

                                                                      The Field Widget Actions module saw continued development this period, with progress on expanding functionality and a new bug report relating to multilingual capabilities.

                                                                      A merge request was opened to add support for checkboxes and radio buttons using dynamic page updates. This enhancement will allow users to interact with these common form elements within field widgets, expanding the module's usefulness across a wider range of content editing scenarios.

                                                                      A bug was reported concerning button label translation. Currently, button labels configured through form displays cannot be translated through the standard translation interface, limiting the module's usability for multilingual sites. This represents a functional gap for organizations operating in multiple languages, though it does not block core functionality for single-language deployments.

                                                                      How can I help on this project?

                                                                      • Prioritize the translation bug fix if your organization requires multilingual content management capabilities.
                                                                      • Allocate resources to test the checkbox and radio button functionality once merged to validate it meets real-world editing workflows.

                                                                      Contributors: Scott Euser (scotteuser)

                                                                      ---

                                                                      AI powered Search Block

                                                                      A new capability to select guardrail settings for the AI-powered search functionality is under development. The guardrail set selection feature has been prepared for review. This addition will give administrators more control over how the AI search behaves, ensuring that responses stay within defined boundaries and meet organizational standards. This is an important step toward making the search feature more configurable and suitable for enterprise deployment.

                                                                      No issues were updated or commits merged during this period, indicating the work is in a review phase.

                                                                      How can I help on this project?

                                                                      • Allocate technical review resources to evaluate the guardrail selection feature so it can move toward completion.
                                                                      • Clarify organizational requirements for AI guardrails to ensure the feature meets business and compliance needs.

                                                                      Contributors: Abhisek Mazumdar (abhisekmazumdar)

                                                                      ---

                                                                      Langfuse

                                                                      A merge request was opened to apply automated project maintenance updates to the Langfuse module. This type of maintenance work helps keep the module aligned with current Drupal platform standards and ensures compatibility as the platform evolves. The changes are pending review but represent routine upkeep rather than new features or fixes.

                                                                      No issues were updated, and no code was merged during this period. Activity remains limited as the module continues in its early phase of development.

                                                                      How can I help on this project?

                                                                      • Consider allocating developer time to review and merge the pending maintenance updates to keep the project current.
                                                                      • Assess whether additional resources or contributors are needed to accelerate development and move the module toward a stable release.

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

                                                                      ======================================================================== ## [39] factcheck:tldr:executive ======================================================================== Layer-1 corrections: 0 Judge flags: 0 ======================================================================== ## [40] 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] Batch embeddings for improved indexing performance (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3568648 [2] Add interactive refinement capability to Field Widget Actions (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586468 [3] Uninstalling ai_ckeditor leaves stale toolbar items in editor.editor.* configuration (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586570 [4] Support the `ai_json_schema` element inside off-canvas dialogs (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586536 [5] Field Widget Button labels are not translatable via UI (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3567027 [6] Tone of voice CKEditor Plugin does not use the translated version of the linked taxonomy (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586573 [7] Add ai_budget_control to the ecosystem / related modules list (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3583958 [8] Suggest Tags automator should work with Tagify (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3536912 [9] Document the AI module ecosystem: a categorized list of related modules with links and summaries (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586482 [10] Save AI Content Suggestion plugin settings inside ai_content_suggestions.settings config object (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586437 [11] Validation of unexisting fields on paragraphs actions (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3571033 [12] ai_content_suggestions: On-focus button un-hide rule misses .field-widget-action-widget-button for field--type-string-long (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3583883 [13] Add info about initiative and release differences to project page (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586568 [14] Add a deterministic script to auto-generate the providers/operation-types matrix from GitLab (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586488 [15] Add metadata (token usage and rate limits) to ChatGenerator in AI API Explorer (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586572 [16] Introduce a modern AI Chatbot frontend library (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586571 [17] Add metadata to VectorDBGenerator in AI-API-Explorer (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3549175 [18] Add an AI reranking processor for Search API (owned by the AI module) (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586543 [19] Add Functional Tests for AI CKEditor (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3477173 [20] ai_ckeditor: Add option to show or hide the "AI Writer" status information (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3586569 [21] Tools UI overview page does not load (ai, Issue) — https://git.drupalcode.org/project/ai/-/work_items/3579979 [22] Batch embeddings for improved indexing performance (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1704 [23] ai-3586569: ai_ckeditor: Add option to show or hide the "AI Writer" status information (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1728 [24] 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 [25] fix(ai_ckeditor): remove stale toolbar items on uninstall and warn on confirm page (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1731 [26] fix: #3586573 Tone of voice CKEditor Plugin does not use the translated... (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1730 [27] Resolve "Add a deterministic script to auto-generate the providers/operation-types matrix from GitLab" (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1645 [28] Issue #3586543: Add AI reranking processor for Search API. (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1729 [29] Issue #3477173: Add functional tests for AI CKEditor (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1302 [30] Add AICKeditor tests (Target 1.4.x) (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1577 [31] Added Functional JavaScript Tests (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1257 [32] fix: ai_ckeditor: Add option to show or hide the "AI Writer" status information (ai, MR) — https://git.drupalcode.org/project/ai/-/merge_requests/1727 [33] Source case studies from AI Summit Rotterdam (ai_initiative, Issue) — https://git.drupalcode.org/project/ai_initiative/-/work_items/3586557 [34] [Meta] Cover remaining AI operation types with ECA execute actions (ai_integration_eca, Issue) — https://git.drupalcode.org/project/ai_integration_eca/-/work_items/3585013 [35] Add ECA execute action for Translate Text (ai_integration_eca, Issue) — https://git.drupalcode.org/project/ai_integration_eca/-/work_items/3585012 [36] Resolve #3593019 "Add imagetoimage possibilities" (ai_provider_openai, MR) — https://git.drupalcode.org/project/ai_provider_openai/-/merge_requests/72 [37] Issue #3590963: Bump SDK constraint and drop method_exists defensive check (ai_provider_anthropic, MR) — https://git.drupalcode.org/project/ai_provider_anthropic/-/merge_requests/28 [38] Automated Project Update Bot fixes (mcp_client, MR) — https://git.drupalcode.org/project/mcp_client/-/merge_requests/19 [39] Add support for batch embeddings (gemini_provider, Issue) — https://git.drupalcode.org/project/gemini_provider/-/work_items/3589183 [40] Support batch embeddings (gemini_provider, MR) — https://git.drupalcode.org/project/gemini_provider/-/merge_requests/37 [41] add support for batching on indexing operations (ai_vdb_provider_milvus, MR) — https://git.drupalcode.org/project/ai_vdb_provider_milvus/-/merge_requests/44 [42] Automated Drupal 12 compatibility fixes for mcp 1.x-dev (mcp, Issue) — https://git.drupalcode.org/project/mcp/-/work_items/3587790 [43] Automated Project Update Bot fixes (mcp, MR) — https://git.drupalcode.org/project/mcp/-/merge_requests/53 [44] Dependency Dashboard (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591657 [45] Boolean field values resetting when using Patterns (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591637 [46] Boolean prop values not retained correctly on SDC components with multiple boolean props (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591697 [47] Boolean props auto-enable when another prop is changed in the Canvas form (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591716 [48] Cast transform treats serialized "0" as true for boolean props (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591739 [49] Add Code Component prop type for multiline plain text (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591741 [50] Canvas Page Preview Fails After Language Code Update for Existing Translations (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591713 [51] 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 [52] Fix explanation of lack of Canvas page language support to account for varied use cases (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591740 [53] Canvas AI - fix deprecated Image import, unsupported package handling, prop/slot name collision, hardcoded error messages, and add slots support (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3584136 [54] Add feature flag for content entity reference props (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591711 [55] WSOD AssertionError: assert(!$data instanceof ComponentInputsMapping) in assert() when requesting tmgmt translation job (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591734 [56] Bump drupal-canvas package to 0.4.2 (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591694 [57] Add translation data to code component data provider (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591738 [58] 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 [59] Access check when publishing auto-save items needs be performed earlier (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591736 [60] Refactor away the confusing "dangling component tree" concept (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3571785 [61] Automate MR review using PHPCS: disallow `\Drupal::service('something')`, require `\Drupal::service(Something::class)` whenever possible, with automatic fixing (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3581133 [62] Non-Canvas (foreign) Drupal form textareas rendered inside Canvas are read-only and lose their #default_value (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591737 [63] CKEditor's source element is not tagged with the active text format inside Canvas, breaking modules that rely on core's editor-attach contract (e.g. ai_ckeditor) (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591735 [64] 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 [65] Text-based comparison of entities (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591668 [66] Translating unpublished page crashes canvas (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591714 [67] Remove workaround in ApiLayoutControllerGetTest::testConfigTranslationAvailabilityLinksAndPermissions() (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591733 [68] 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 [69] Remove `canvas_dev_cd` flag module (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591732 [70] Canvas AI: In-progress chat messages disappear when editing page metadata during an active run (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3591731 [71] Changing Metadata Clears Canvas AI Prompt Text (canvas, Issue) — https://git.drupalcode.org/project/canvas/-/work_items/3558257 [72] fix(deps): update npm minor and patch (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1238 [73] Access check in ApiAutoSaveController::post() should be performed earlier (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1302 [74] fix(Internal HTTP API, Translation): #3591713 Fix Canvas page preview for translated pages when the URL prefix differs from the langcode (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1304 [75] Suggest updated text to account for broader multilingual use case (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1303 [76] feat(CLI Tool): Clean up the output of all CLI commands (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1280 [77] Issue #3584136: Fix canvas_component_agent prompt bugs (Image import,... (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1237 [78] 3591734: WSOD AssertionError: assert(!$data instanceof ComponentInputsMapping) in assert() when requesting tmgmt translation job (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1296 [79] chore(Data model): #3591727 Store each prop's translatability per component version so deleting an optional prop keeps config-defined component trees valid (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1300 [80] #3591738 add translation data to code component provider (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1301 [81] feat(Drush): #3585531 Add commands to list, audit, and generate Canvas components (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/937 [82] #3581133: Automate MR review using PHPCS: disallow `\Drupal::service('something')`, require `\Drupal::service(Something::class)` whenever possible, with automatic fixing (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1297 [83] Issue #3591737: Make foreign Drupal form textareas editable in Canvas by... (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1299 [84] Issue #3591735: AI CKEditor text format (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1298 [85] 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 [86] AI-generated. (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/797 [87] feat(Conflict detection): #3587526 "Detect conflicts during publishing of changes to Page entity" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1193 [88] feat(Conflict detection): #3587526 "Client side prevention of publishing" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1018 [89] Draft: feat(Notifications, Conflict detection): #3591723 Add conflict notification... (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1295 [90] #3591733"Remove workaround in ApiLayoutControllerGetTest::testConfigTranslationAvailabilityLinksAndPermissions()" (canvas, MR) — https://git.drupalcode.org/project/canvas/-/merge_requests/1294 [91] 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 [92] Sprint 12 CCC roadmap updates, sprint planning, and issue triage (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586277 [93] Move scheduler feature to submodule or progressive enhancement (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3577429 [94] Allow subcontext scope to override parent scope (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586218 [95] 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 [96] CCC beta3 release planning (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586182 [97] UX improvements on new context listing page (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586274 [98] Avoid Full Published-ID Scans Before Scope Prefiltering (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586206 [99] Rename entity bundle and target entity scope plugins for better DX (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586276 [100] CCC beta / pre-rc1 community testing (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586234 [101] [Meta] Fix CCC issues based on AI Best Practices results (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586298 [102] Clean up CCC test and documentation consistency before rc1 (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586299 [103] Clean up CCC accessible interactive links and external links (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586301 [104] Clean up CCC tooltip, truncation, and icon-only content (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586302 [105] Clean up CCC JavaScript filter feedback (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586303 [106] Clean up CCC form and table accessibility cleanup (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586304 [107] Clean up CCC documentation and API consistency (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586305 [108] Clean up CCC configuration policy checks (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586306 [109] Clean up CCC cacheability and access metadata (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586300 [110] Test AI Best Practices skills on AI Context codebase (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586258 [111] Add warning on subcontext edit form if parent is unpublished (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586297 [112] [Discuss] Moderation status of subcontext vs parent context items (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586264 [113] hook_ai_context_scope_values_alter() is not honored in scope value forms (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586246 [114] `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 [115] Question about "Subcontext type = Conditional - included based on relevance" (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586149 [116] Inject context into ai_ckeditor requests (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3581955 [117] [Discuss] Context scope matching semantics: additive OR, filters, and UX clarity (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586196 [118] Document supported vs internal CCC APIs (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586241 [119] Provide test context items for testing CCC (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586244 [120] CCC beta3 QA (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586296 [121] CCC beta2 QA (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586156 [122] Create CCC beta3 release (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586295 [123] CCC beta3 codebase review (pre-release) (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586294 [124] Create CCC beta2 release (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3585920 [125] CCC beta2 codebase review (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586202 [126] [Discuss] Add boundaries / exclusions to scope plugins (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586197 [127] Sprint 13 CCC roadmap updates, sprint planning, and issue triage (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586293 [128] Evaluate Annotations module and how it might work with CCC (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586268 [129] Update CCC overview page with hide option and new wording (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586211 [130] Handle the case when scope plugin values are no longer available (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586145 [131] Clean up follow-ups from target entity decoupling review (ai_context, Issue) — https://git.drupalcode.org/project/ai_context/-/work_items/3586082 [132] Issue #3577429: Make Scheduler an optional progressive feature. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/178 [133] Issue #3586274: Merge Use cases/Scope columns and add cascading scope filter (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/184 [134] Issue #3586276: Rename entity bundle and target entity scope plugins for better DX (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/195 [135] Issue #3586297: Add warning on subcontext edit form if parent is unpublished. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/196 [136] Issue #3586264: Show warning when subcontext parent is unpublished. (ai_context, MR) — https://git.drupalcode.org/project/ai_context/-/merge_requests/193 [137] Batch embeddings for improved indexing performance (ai_search, Issue) — https://git.drupalcode.org/project/ai_search/-/work_items/3584024 [138] Resolve "Batch embeddings for improved indexing performance" (ai_search, MR) — https://git.drupalcode.org/project/ai_search/-/merge_requests/53 [139] Field Widget Button labels are not translatable via UI (field_widget_actions, Issue) — https://git.drupalcode.org/project/field_widget_actions/-/work_items/3578824 [140] 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 [141] feat: #3582452 Add guardrail set selection to ai_search_block (ai_search_block, MR) — https://git.drupalcode.org/project/ai_search_block/-/merge_requests/44 [142] Automated Project Update Bot fixes (langfuse, MR) — https://git.drupalcode.org/project/langfuse/-/merge_requests/5 --- TODAY'S MODULE SUMMARIES ---

                                                                        AI (Artificial Intelligence)

                                                                        Development this period focused on improving the CKEditor integration, consolidating configuration architecture, and expanding the Search API ecosystem. One significant piece of work merged: functional tests for the AI CKEditor module were added to the 1.4.x release branch, strengthening quality assurance for the text editor integration.

                                                                        Several improvements to the CKEditor user experience are in progress. Work is underway to warn users when no AI provider is installed, preventing confusion when the feature fails silently. Another change will allow administrators to hide the "AI Writer: Idle" status indicator if they prefer a cleaner interface. A third effort addresses a bug where uninstalling the CKEditor module left behind broken toolbar references, causing configuration pages to fail.

                                                                        On the architecture side, configuration for AI Content Suggestions plugins is being consolidated into a single settings object to simplify instantiation and reduce overhead. Work is also progressing to allow the JSON schema form element to function correctly inside off-canvas dialogs, expanding its usability beyond full-page forms.

                                                                        Two new capabilities are being developed. A reranking processor for Search API is in progress, allowing any Search API backend to re-order results using AI models for improved precision. A batch embeddings feature is also underway to speed up indexing by processing multiple content chunks at once rather than sequentially.

                                                                        Documentation and ecosystem visibility work continues, including a request to add the ai_budget_control module to the related projects list (now closed), and ongoing efforts to create a curated catalog of the growing number of companion modules, providers, and distributions.

                                                                        How can I help on this project?

                                                                        • Review and prioritize the backlog of open configuration and user experience improvements to identify which issues most directly block adoption for new users.
                                                                        • Clarify the release roadmap and communicate the differences between minor versions (1.2, 1.3, 1.4) and the upcoming 2.0 to help developers choose the right version.

                                                                        Contributors: Abhisek Mazumdar (abhisekmazumdar), AKHIL BABU (AkhilBabu) [1], Artem Dmitriiev (a.dmitriiev), Hrishikesh Dalal (hrishikesh-dalal), Marcus Johansson (Marcus_Johansson), Mukeysh, Ricardo Castañeda (cadence96), Thomas Werthmüller (weri), velmir_taky (root_emarketing)

                                                                        ---

                                                                        Drupal AI Initiative

                                                                        Activity this period was limited to planning work. Progress continued on sourcing real-world case studies from the upcoming Enterprise AI Summit in Rotterdam, scheduled for September. The initiative is working to identify new examples of organizations using Drupal with AI capabilities, which will help demonstrate the platform's viability for AI-enabled projects. Access to session submissions has been secured, and the focus is now on reviewing these submissions to identify suitable case studies and establishing contact with the organizations behind them. This outreach will support future marketing efforts, including webinars and published articles showcasing practical applications of Drupal in AI contexts.

                                                                        No code changes or technical work were completed during this reporting period.

                                                                        How can I help on this project?

                                                                        • Provide resources to accelerate case study curation and outreach once submissions are reviewed, ensuring timely engagement with potential showcase partners before the September summit.
                                                                        • Support executive-level introductions to organizations identified in the submissions to facilitate higher-quality conversations about their Drupal AI implementations.
                                                                        ---

                                                                        AI Integration - ECA

                                                                        Planning work advanced this period to expand automation capabilities. The module currently supports building automation workflows for 5 AI operations (chat, content moderation, speech conversion, and text embedding). A roadmap was opened to extend coverage to the remaining 13 operation types exposed by the underlying AI platform, enabling users to automate a wider range of AI tasks without custom development. This work is flagged as part of the path to a stable 1.0 release.

                                                                        Within that scope, a specific task for translation automation was opened. Once delivered, this will allow workflows to trigger text translation between languages directly, supporting multilingual content strategies through visual workflow tools rather than code.

                                                                        No code was merged this period; the activity reflects planning and issue structuring. Both issues remain unassigned, which is typical for early-stage modules organizing their development backlog.

                                                                        How can I help on this project?

                                                                        • Assign developer capacity to the translation and broader operation-type expansion work to accelerate delivery of the 1.0 release.
                                                                        • Clarify business priority among the 13 planned operation types to sequence development effort where user demand is highest.
                                                                        ---

                                                                        OpenAI Provider

                                                                        The OpenAI Provider module achieved a significant capability expansion during this period. The image-to-image functionality was merged, enabling users to generate new images from existing images. This extends the module's AI capabilities beyond text-based interactions, opening new use cases for content creation and visual asset transformation.

                                                                        The merge represents a substantial addition to the module's feature set, with over 300 lines of changes integrated. This positions the module to serve a broader range of business needs where visual content generation is required.

                                                                        No critical issues or blockers emerged during this period. Development momentum remains steady as the module continues to expand its AI service offerings.

                                                                        How can I help on this project?

                                                                        • Identify internal stakeholders who could pilot the new image generation capabilities to validate real-world use cases and gather feedback.
                                                                        • Assess whether additional resources are needed to accelerate testing and documentation now that the feature set is expanding.
                                                                        Contributors: Marcus Johansson (Marcus_Johansson) ---

                                                                        Anthropic Provider

                                                                        The Anthropic Provider module advanced this period with the completion of work enabling prompt caching and PDF document support. The SDK constraint and method check update was merged, delivering two important capabilities: administrators can now enable prompt caching through a simple toggle in the settings interface, choosing between short- or long-duration cache lifetimes to optimize performance and reduce costs; and the system can now accept PDF documents as input, expanding the types of content the module can process.

                                                                        These enhancements make the module more flexible and cost-efficient for organizations using AI capabilities in their Drupal sites. Prompt caching allows frequently-used content to be reused without repeated processing, while PDF support broadens the range of business documents that can be analyzed or summarized.

                                                                        How can I help on this project?

                                                                        • Consider prioritizing testing resources to validate the new caching and PDF features in realistic business scenarios before wider deployment.
                                                                        • Evaluate whether the expanded capabilities align with strategic needs for document processing or content workflows that could benefit from AI integration.

                                                                        Contributors: Carlos Ospina (camoa)

                                                                        ---

                                                                        Fireworks AI

                                                                        The Fireworks AI module saw maintenance activity during this period, with three commits focused on addressing requirements and implementing reranking functionality using standardized base components. These changes appear to improve the module's compliance with project standards and enhance its core capabilities.

                                                                        With no open issues or merge requests flagged during this period, development appears to be proceeding in a straightforward maintenance mode. The module continues its early-stage development trajectory without any blocking concerns.

                                                                        How can I help on this project?

                                                                        • Consider allocating resources for user testing or feedback collection to validate whether the module meets real-world business needs.
                                                                        • Assess whether the project would benefit from documentation investment to support adoption and reduce integration barriers.

                                                                        Contributors: Marcus Johansson [3]

                                                                        ---

                                                                        MCP Client

                                                                        Activity this period was limited to automated maintenance. A merge request for automated project updates was opened, containing maintenance changes generated by the project's update automation. No substantial feature development, bug fixes, or user-facing improvements were delivered during this 24-hour window.

                                                                        The module continues in its current state with no new releases or progress toward stability milestones in this period.

                                                                        How can I help on this project?

                                                                        Consider evaluating whether the project has adequate resourcing and clear priorities for moving toward a stable release. If the module is strategic, ensuring dedicated development capacity and a defined roadmap would help accelerate progress and delivery of business value.

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

                                                                        ---

                                                                        Gemini Provider

                                                                        This module integrates Google's Gemini AI capabilities into Drupal. Development activity this period focused on expanding the module's efficiency when processing large volumes of content.

                                                                        A new merge request was opened to enable batch embeddings processing. This enhancement will allow the system to convert multiple pieces of content into machine-readable formats in a single operation, rather than processing them one at a time. For sites handling significant content volumes or large-scale AI operations, this represents a meaningful performance improvement and cost reduction. The work is currently under review.

                                                                        The module remains in active development as part of the broader AI Initiative, with this feature building on previous embedding capabilities.

                                                                        How can I help on this project?

                                                                        • Ensure the team has sufficient review capacity to evaluate and merge the batch embeddings work, which could deliver immediate performance benefits.
                                                                        • Clarify priority and timeline expectations for advancing the module toward a stable release suitable for production use.

                                                                        Contributors: Artem Dmitriiev (a.dmitriiev)

                                                                        ---

                                                                        Milvus VDB Provider

                                                                        Development continues on this module, which enables Drupal sites to use Milvus as a vector database provider for AI-driven search and content discovery capabilities.

                                                                        A new merge request has been opened to add support for batching on indexing operations. This enhancement will allow the system to process multiple items at once when building search indexes, which should improve performance and reduce the time required to make content searchable. This is particularly valuable for sites with large content libraries that need efficient indexing.

                                                                        The merge request is currently under review. No other issues or commits were recorded during this period.

                                                                        How can I help on this project?

                                                                        • Ensure development resources are available to review and test the batching enhancement to accelerate its delivery.
                                                                        • Identify pilot use cases or content-heavy sites that could benefit from improved indexing performance to validate the work.

                                                                        Contributors: Artem Dmitriiev (a.dmitriiev)

                                                                        ---

                                                                        Model Context Protocol

                                                                        The Model Context Protocol module is undergoing preparation for compatibility with Drupal 12. An automated Drupal 12 compatibility issue has been created to track the removal of deprecated functionality, with a corresponding merge request submitted containing compatibility updates. This work ensures the module will continue functioning when Drupal's next major version is released.

                                                                        No commits were merged during this period. The compatibility work is being handled through automated tooling that identifies deprecated code patterns and proposes updates. This is standard housekeeping for modules transitioning between Drupal core versions.

                                                                        How can I help on this project?

                                                                        • Allocate developer time to review and validate the automated compatibility fixes to accelerate Drupal 12 readiness.
                                                                        • Clarify the roadmap and timeline for achieving a stable release, which would help prioritize compatibility work.

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

                                                                        ---

                                                                        Drupal Canvas

                                                                        Development activity this period focused on resolving issues with boolean properties in components, advancing conflict detection capabilities, and addressing translation workflow bugs.

                                                                        Several boolean property bugs were identified and addressed. Work progressed on fixes for issues where boolean values reset when using patterns, auto-enable when other properties change, and are incorrectly cast when serialized as "0". A feature flag was implemented for content entity reference properties, allowing this experimental capability to remain hidden until fully stable.

                                                                        The conflict detection and resolution system saw significant progress. Backend support was added for detecting conflicts during page publishing, returning HTTP 409 responses when conflicts are present. Client-side handling now prevents users from publishing conflicted changes while still allowing non-conflicted items to proceed. The review interface was enhanced to clearly mark conflicted items and exclude them from bulk selection. Work also advanced on resolving conflicts via API and loading visual previews of both auto-save and published versions.

                                                                        Translation support received attention following reports of preview failures after language code updates and crashes when translating unpublished pages. Fixes address how Canvas handles URL prefixes that differ from language codes and revision-related conflicts triggered by translation job completion.

                                                                        A large refactoring to enforce service references using class constants rather than strings was merged, improving code navigation and reducing magic strings across the codebase.

                                                                        How can I help on this project?

                                                                        • Prioritize review bandwidth for conflict detection merge requests currently in progress, as this capability is critical for multi-editor workflows.
                                                                        • Consider allocating resources to complete the text-based entity comparison feature, which requires both backend and frontend work plus design input.

                                                                        Contributors: **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Ahmad Khalil (ahmad-khalil-imagex), Ben Mullins (bnjmnm), Bálint Kléri (balintbrews), Christian López Espínola (penyaskito), Feliksas Mazeikis (f.mazeikis), Gábor Hojtsy (goba), Kunal Sachdev (kunal.sachdev), Matt Glaman (mglaman), Narendra Singh Rathore (NarendraR), Oleksandr Antonchyk (Anton4yk), Ravi Maniyar (ravi.maniyar.123), Wim Leers (wimleers)

                                                                        ---

                                                                        Context Control Center (CCC)

                                                                        The module continued progress toward its beta3 release, which is targeted for early July 2026. Sprint 12 planning closed on schedule, and Sprint 13 is now underway. Key work this period included simplifying dependency management and addressing technical quality ahead of the release candidate milestone.

                                                                        The scheduler feature was moved to a submodule, making it an optional progressive enhancement rather than a required dependency. This reduces installation complexity and lets sites adopt scheduling only when needed.

                                                                        An internal code review based on automated best practices checks was completed, generating a structured set of follow-up issues covering accessibility, documentation, test consistency, and caching behavior. These issues are now queued for resolution before the release candidate, with prioritization focused on items affecting the public API, configuration, or stable expectations.

                                                                        Work is also in progress to improve the user interface for context listings, including merging scope and use case columns into a unified view and introducing cascading filters for easier navigation. Planning for beta3 quality assurance and the beta3 release itself are both underway, with community testing still open for feedback.

                                                                        How can I help on this project?

                                                                        Consider resourcing manual QA support for the beta3 testing script to accelerate the release timeline. If feasible, advocate within the community for broader testing participation to surface edge cases before RC1. Review the accessibility and documentation cleanup queue to identify any that may require design or policy decisions rather than just code fixes.

                                                                        Contributors: Kristen Pol (kepol), Matt Glaman (mglaman) [1], Tamas Balog (tbalog)

                                                                        ---

                                                                        AI Search

                                                                        The AI Search module saw focused development work on improving indexing performance through batched processing of content embeddings. A Batch embeddings for improved indexing performance issue was created and development began through an associated merge request containing over 700 lines of changes. This work ports functionality from the broader AI initiative, as the standalone ai_search submodule is being consolidated into the main AI framework.

                                                                        For users, batch processing means the system can handle indexing large volumes of content more efficiently, reducing processing time and server load when making content searchable. This is particularly valuable for organizations with extensive content libraries or those performing bulk updates.

                                                                        The work is currently in progress and has not yet been merged or deployed. No blocking issues were reported during this period.

                                                                        How can I help on this project?

                                                                        • Ensure adequate resources are allocated for testing the batch processing changes once the merge request is ready for review.
                                                                        • Clarify the strategic roadmap for consolidating AI Search into the core AI framework to guide ongoing migration decisions.

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

                                                                        ---

                                                                        Field Widget Actions

                                                                        The Field Widget Actions module saw continued development this period, with progress on expanding functionality and a new bug report relating to multilingual capabilities.

                                                                        A merge request was opened to add support for checkboxes and radio buttons using dynamic page updates. This enhancement will allow users to interact with these common form elements within field widgets, expanding the module's usefulness across a wider range of content editing scenarios.

                                                                        A bug was reported concerning button label translation. Currently, button labels configured through form displays cannot be translated through the standard translation interface, limiting the module's usability for multilingual sites. This represents a functional gap for organizations operating in multiple languages, though it does not block core functionality for single-language deployments.

                                                                        How can I help on this project?

                                                                        • Prioritize the translation bug fix if your organization requires multilingual content management capabilities.
                                                                        • Allocate resources to test the checkbox and radio button functionality once merged to validate it meets real-world editing workflows.

                                                                        Contributors: Scott Euser (scotteuser)

                                                                        ---

                                                                        AI powered Search Block

                                                                        A new capability to select guardrail settings for the AI-powered search functionality is under development. The guardrail set selection feature has been prepared for review. This addition will give administrators more control over how the AI search behaves, ensuring that responses stay within defined boundaries and meet organizational standards. This is an important step toward making the search feature more configurable and suitable for enterprise deployment.

                                                                        No issues were updated or commits merged during this period, indicating the work is in a review phase.

                                                                        How can I help on this project?

                                                                        • Allocate technical review resources to evaluate the guardrail selection feature so it can move toward completion.
                                                                        • Clarify organizational requirements for AI guardrails to ensure the feature meets business and compliance needs.

                                                                        Contributors: Abhisek Mazumdar (abhisekmazumdar)

                                                                        ---

                                                                        Langfuse

                                                                        A merge request was opened to apply automated project maintenance updates to the Langfuse module. This type of maintenance work helps keep the module aligned with current Drupal platform standards and ensures compatibility as the platform evolves. The changes are pending review but represent routine upkeep rather than new features or fixes.

                                                                        No issues were updated, and no code was merged during this period. Activity remains limited as the module continues in its early phase of development.

                                                                        How can I help on this project?

                                                                        • Consider allocating developer time to review and merge the pending maintenance updates to keep the project current.
                                                                        • Assess whether additional resources or contributors are needed to accelerate development and move the module toward a stable release.

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

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