Daily Digest
Daily Digest – 10 September 2026
2026 Capabilities Progress
- Page generation — Canvas completed a fix preventing AI tool selection from changing mid-turn during page generation [97], and work continues on removing obsolete region-based instructions while updating the orchestrator for the new page-variant model [105][106]. The content entity seeder tool also had a schema generation bug identified that affects content creation workflows [10].
- Context management — The Context Control Center is conducting pre-release QA testing with active work on context scope, item settings, and creation workflows [117][122][123]. A bug was identified where revision settings are not being respected [118], and the AI CKEditor module now has a fix under review to send bundle and page path context for unsaved entities [124][125].
- Background agents — The AI Integration - ECA module closed issue [22] for the stable 1.0.0 release, though closing the issue does not confirm the release is published or production-ready. The module also closed the issue for media entity support in vision models [21], though closing the issue does not guarantee the feature is shipped.
- Design system integration — Canvas made progress on component validation, with work underway to normalize agent-written prop values against schemas and report values that cannot be stored [84]. Work is also advancing on brand kit color syncing through the Canvas CLI [113] and improving font UI [96].
- Content creation and discovery — Field Widget Actions closed issue [5] and merged MRs [15][17] for interactive refinement capability in the 2.x version, though merged MRs do not guarantee a published release, and work continues on targeting specific automators rather than running all simultaneously [2][14]. The Postgres VDB provider is adding batch embeddings support to reduce indexing time [65][68], and a critical indexing bug was also identified with a fix under review [66][67].
- Advanced governance — A security permission issue was flagged as a release blocker where the AI API Explorer permission is not marked security-sensitive despite allowing direct provider invocation [7]. Canvas continues work on proper chat history management in the backend [76][110], and the Context Control Center identified a revision control bug affecting audit trails [118].
- Intelligent website improvements — Canvas is unifying error handling across AI agent tools to improve response quality [79][85][107][111], and work is progressing on better validation of AI-generated content to reduce unnecessary rejections [84]. The AI Dashboard merged MR [127] to refresh ecosystem data for issue [126], though a merged MR does not guarantee the refresh is deployed or live.
- Multi-channel campaigns — The AI translate module identified two critical issues: a regression preventing Layout Builder content translation [12][138][139] and HTML markup corruption in formatted text fields [137]. Both issues impact content quality and require resolution before production readiness.
Shipped
- Interactive refinement added to Field Widget Actions — Editors can now iteratively improve AI-generated content directly within forms, enabling more control over automated content creation workflows [5][15][17].
- AI Integration ECA reached 1.0.0 stable release — The module is now production-ready and compatible with Drupal CMS recipes, removing a packaging barrier that prevented broader distribution [22].
- Vision model support completed in AI Integration ECA — The module can now process image and media files for AI-powered categorization and analysis, expanding beyond text-only workflows [21].
- Canvas AI tool selection locked during chat turns — Users can no longer accidentally switch tools mid-conversation, preventing inconsistent behavior in AI-assisted editing sessions [77][97].
- Field Widget Actions now displays action summaries — Form management screens show which fields have actions configured without opening individual settings, improving oversight for teams managing complex forms [131][133].
Ongoing
- Security permission gap blocks AI module release — The AI API Explorer permission is not marked security-sensitive despite allowing direct provider invocation outside normal access controls [7].
- Layout Builder translation regression under review — Content built with Layout Builder is no longer translated following recent security improvements, affecting multilingual content workflows [12][138][139].
- Image generation corruption fix awaiting merge — AI-generated images are being corrupted due to double base64 decoding, causing silent data loss [11][20].
- Canvas site template installation failure diagnosed — Recipe application with Canvas 1.11 causes container errors, potentially blocking production deployments [78].
- Context scope improvements for unsaved content in progress — AI CKEditor is being updated to provide context-aware assistance for drafts and new content, not just saved entities [124][125].
AI (Artificial Intelligence)
Development activity this period focused on stabilizing Field Widget Actions (FWA) capabilities and addressing defects in several automators and providers. Interactive refinement features for Field Widget Actions were successfully integrated into the 2.x version, giving editors the ability to iteratively improve AI-generated content within forms. A parallel effort to allow FWA buttons to target specific automators rather than running all configured automators simultaneously is now under review.
Several bugs were identified and are being corrected. A critical image generation defect where images were corrupted due to double-decoding was addressed, preventing silent data corruption in generated files. A configuration idempotency issue affecting recipe-based deployments was also reported and now has a fix under review. Additional bugs surfaced in the Metatag automator (storing all tags rather than only configured ones), streaming chat (corrupting URLs in HTML attributes), and content translation for Layout Builder pages.
One security permission issue has been flagged as a release blocker: the AI API Explorer tool's permission is not marked security-sensitive, despite allowing direct invocation of AI providers and function calls outside normal access controls.
How can I help on this project?
- Prioritize review and testing of the release blocker permission fix to ensure secure deployment readiness.
- Allocate resources to address the critical Layout Builder translation regression impacting multilingual content workflows.
Contributors: Abhisek Mazumdar (abhisekmazumdar), Artem Dmitriiev (a.dmitriiev), Dezső Biczó (mxr576), Juan Correa (jucs7), Petar Bašić (petar_basic), Sven Decabooter (svendecabooter)
AI Integration - ECA
The AI Integration - ECA module progressed significantly toward production readiness during this period. Three issues were closed, including the completion of Support media entities for vision models, which enables the module to process image and media files for AI-powered categorization and analysis. This expands the module's capability beyond text-only prompts, allowing organizations to automate visual content workflows.
A critical stability milestone was achieved with the closure of Stable 1.0.0 release for use in Drupal CMS recipes. The module is now production-ready and compatible with Drupal CMS recipe requirements, removing a packaging barrier that prevented adoption by products requiring stable releases. With 934 sites currently using the module, this opens the door to broader distribution.
Internal consistency was improved through Replace token references by token replacements, which standardizes how dynamic content is handled across the module's features, building on patterns established in the media support work.
How can I help on this project?
- Promote the 1.0.0 stable release to downstream teams and partners building Drupal CMS recipes or packaged products.
- Consider case studies or documentation showcasing vision model use cases to drive adoption of the new media capabilities.
Contributors: Jürgen Haas (jurgenhaas) [1]
OpenAI Provider
The OpenAI Provider module saw primarily administrative activity over the last 24 hours, with 23 issues closed. These closures reflect past work being finalized rather than new development landing in the reporting period. The closed issues span multiple areas: support for additional text-to-speech voices, batched embeddings for faster vector database indexing, reasoning output from AI models, file handling capabilities, moderation logging interfaces, and compatibility fixes for various OpenAI model parameters. This cleanup work brings the project's issue queue into better alignment with its current functionality.
Several active issues remain open and require attention. A moderation accuracy bug is causing almost every content category to appear flagged because the system reads confidence scores instead of actual violation flags. An integration error prevents all chat operations when using version 1.3.0-beta2 with the stable AI module. Two feature requests relate to supporting OpenAI's newer capabilities: fast mode for improved response times and GPT 5.4 compatibility.
The project has 42 open issues in total, including work underway to improve test coverage for speech-to-text and text-to-speech operations. This is expected and appropriate for a module in active development supporting a rapidly evolving external API.
How can I help on this project?
- Prioritize the moderation accuracy bug and chat integration error, as these block core functionality for users on current stable versions.
- Clarify the module's roadmap for supporting new OpenAI features like fast mode and GPT 5.4, particularly whether these require upstream AI framework changes.
AWS Bedrock Provider
A bug affecting reasoning models was identified and a fix has been prepared. When using reasoning models, the system was returning empty responses instead of the actual generated text. This occurred because reasoning models structure their output differently, placing reasoning content in a separate block before the main response. The current code was looking in the wrong location for the text.
The same issue affects the handling of model-specific configuration parameters, which were being rejected instead of properly routed to the underlying service.
A fix for both problems is now under review. Once merged, reasoning models will work correctly and model-specific parameters will be properly supported. This expands the module's compatibility with advanced AI capabilities and gives users more control over model behavior.
How can I help on this project?
- Ensure testing resources are available to validate the reasoning model fix before release
- Consider prioritizing review capacity to move the pending fix through the approval process
Microsoft Azure AI
The Microsoft Azure AI provider module saw issue reporting activity but no code changes during this period. A validation gap in structured output handling was documented, where invalid JSON schemas are silently accepted rather than flagged. This means that configuration errors—such as marking fields as required without defining them—are not caught early, potentially leading to unexpected behavior downstream. The issue is open and unassigned, with no fix currently in development.
This represents normal maintenance activity for a module in active development. The issue has been logged and is awaiting prioritization and assignment.
How can I help on this project?
- Allocate developer time to triage and assign the open validation issue, ensuring it is prioritized appropriately within the roadmap.
- Consider resourcing a quality assurance review of schema validation across the module to identify similar gaps proactively.
Postgres VDB Provider
The Postgres VDB Provider is being adapted to support batch embeddings, a new capability that enables indexing systems to process and store multiple content chunks in a single request instead of one at a time. This change is expected to meaningfully reduce indexing time for sites using this provider. The work aligns the Postgres provider with improvements already made to other vector database providers in the AI module ecosystem. A merge request implementing this capability is now open for review.
Separately, a bug was identified and addressed that prevented any content indexing from working at all. When attempting to index content through Search API, the system would fail with an error due to an uninitialized variable. A fix has been prepared and is awaiting merge.
These updates move the module toward more efficient operation and restore core indexing functionality that was broken.
How can I help on this project?
- Ensure reviewer capacity is available to evaluate and merge the two open merge requests so the performance improvements and bug fix reach users promptly.
- Consider prioritizing resources for testing the batch embeddings feature in realistic production scenarios to validate the performance gains.
Drupal Canvas
What shipped
A significant fix to the AI chat experience was completed: the selected Tool can no longer change mid-turn. Previously, because each chat turn involved multiple backend requests, users could inadvertently switch or clear the AI tool while a conversation was still running, causing inconsistent behavior. The system now locks the tool selection for the duration of a turn, both in the interface and on the server.
In progress
Work continues on several fronts. An installation failure affecting site templates was identified and is under review—the issue causes a container error when applying recipes with Canvas 1.11. Separately, efforts are underway to remove outdated AI instructions tied to the old region-based layout model, now replaced by page variants. Progress is also being made on unifying error handling across AI agent tools and improving validation of AI-generated content to reduce unnecessary rejections. On the developer experience side, work is moving forward to support module development outside the Drupal tree and to sync brand kit colors through the Canvas CLI.
How can I help on this project?
- Prioritize diagnosis and resolution of the site template installation failure, which may block adoption of Canvas 1.11 in production environments.
- Ensure developer tooling improvements receive adequate review and testing resources to accelerate contributor onboarding.
Contributors: **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Adam G-H (phenaproxima), Ahmad Khalil (ahmad-khalil-imagex) [1], AKHIL BABU (AkhilBabu), Bálint Kléri (balintbrews), Chandan Singh (chandu7929), dpi, Feliksas Mazeikis (f.mazeikis), Fons Vandamme (f0ns), Georgi Ivanov (givanov), John Locke (freelock), Jordan Graham (COBadger), julio retkwa (julioretkwa), Konstantine Kirkitadze (kotekirkitadze), Lauri Timmanee (lauriii), Matt Hand (matthand), Narendra Singh Rathore (NarendraR), Ted Bowman (tedbow), utkarsh_33 (Utkarsh_33), Wim Leers (wimleers), wotnak
Context Control Center (CCC)
The project is conducting structured quality assurance testing ahead of its first release candidate. Over the past 24 hours, testing activity has uncovered functional issues and identified usability improvements needed before the module can be considered stable.
Testing of context item creation workflows has been completed. Separate test coverage is continuing for context scope configuration and context item settings. This phase of testing is validating that the core content management functions—creating, editing, publishing, and organizing context items—work reliably for editors and do not result in data loss or incorrect behavior.
A bug was identified where the revision setting is not being respected: Disabling "Create new revisions by default" still creates a new revision. This issue affects content governance and audit trails for organizations that want to control when changes are tracked.
Minor interface improvements have been flagged, including simplifying button labels and expanding configuration summaries to show subscription details. Accessibility testing of the dashboard interface has also been assigned and is underway.
How can I help on this project?
- Prioritize resolution of the revision settings bug to ensure content governance features work correctly before release.
- Confirm resource allocation for completing accessibility testing and any remediation work that emerges from those audits.
AI CKEditor
The AI CKEditor module enables content editors to use AI assistance directly within the text editor. Over the past 24 hours, work focused on improving how AI understands the context of content being edited.
A solution is now in development to address a limitation where AI context was only available for already-saved content. When editors create new content or work with drafts, the AI should be able to understand what type of content is being created and where it will appear on the site. This allows site administrators to configure AI behavior that automatically applies to specific content types or site sections—for example, providing different writing assistance for blog posts versus product pages. The Send bundle and page path in entity_context so AI Context can scope unsaved entities and Site Sections fix is currently under review and will make the AI assistance more consistent across both new and existing content.
This work supports the module's goal of providing context-aware AI assistance that adapts to different editorial workflows without requiring manual configuration for each editing session.
How can I help on this project?
- Prioritize review and testing resources to validate the context-handling fix and move it toward completion.
- Ensure documentation resources are available to help site builders configure context rules once the feature is stable.
Contributors: Kristen Pol (kepol)
AI Dashboard
The AI Dashboard project saw progress on its ecosystem tracking capability during this period. A question was raised about how often ecosystem data is updated, prompting immediate action. In response, the ecosystem data was refreshed and now reflects 234 modules and 38 recipes as of September 10. The update also addressed technical issues that were preventing the system from reliably gathering information about AI-related projects in the Drupal community.
This work supports the project's goal of maintaining an accurate view of the AI tooling landscape in Drupal, helping stakeholders understand what solutions are available and how the ecosystem is evolving. Current, reliable ecosystem data enables better decision-making about which AI capabilities to invest in or integrate.
How can I help on this project?
- Clarify governance around ecosystem data refresh frequency: establish whether daily, weekly, or on-demand updates best serve stakeholder needs.
- Promote the ecosystem dashboard to relevant teams or partners who may benefit from visibility into available AI modules and recipes.
Contributors: Rob Loach (robloach) [1]
Field Widget Actions
The Field Widget Actions module made meaningful progress toward improved usability and stability over the past 24 hours. Two fixes were merged that address gaps in the configuration experience and system reliability.
A new feature now displays a summary of configured actions directly on the form management screen, eliminating the need to open each field's settings individually to see which fields have actions attached. This improves visibility and oversight for teams managing forms with multiple fields.
A bug causing system crashes when displaying action descriptions was also resolved. The issue occurred when certain text formatting objects were returned in an incompatible format, leading to failures during rendering.
Three open issues remain under active discussion. These address widget compatibility challenges with certain input types, error messaging when required configuration is missing, and a problem preventing users from successfully removing actions once added. All are typical refinements expected during the module's current development phase.
How can I help on this project?
- Prioritize triage and resolution of the three open usability issues, particularly the removal bug, to reduce friction for teams configuring forms.
- Ensure adequate testing resources are allocated to validate widget compatibility across diverse field types before the next release.
Contributors: Artem Dmitriiev (a.dmitriiev), Joonas Meriläinen (mErilainen), Nik LePage (niklp)
AI translate
The AI translate module enables automatic translation of Drupal content using AI services. Over the past 24 hours, two significant issues emerged affecting the quality and completeness of translated content.
A regression was identified where content built using Layout Builder is no longer being translated. This occurred following recent security improvements. The underlying issue is that layout fields are being silently excluded from translation without warning, meaning users would see apparently successful translations that are actually incomplete. A fix for the Layout Builder regression has been prepared and is under review.
Separately, a bug was reported where HTML formatting in rich text fields is being corrupted during translation. Formatted content containing bold, italics, links, and other HTML markup is emerging with broken or altered structure, affecting any content type using visual editors like CKEditor. This issue remains open and unaddressed.
Both issues impact the reliability of translated content and require resolution before the module can be considered production-ready for sites with formatted or layout-driven content.
How can I help on this project?
- Prioritize technical review and approval of the pending Layout Builder fix to restore translation completeness
- Allocate development resources to investigate and resolve the HTML corruption issue, which currently has no proposed solution
Contributors: Sven Decabooter (svendecabooter), Carlos Busto Capeáns (cbccharlie)
ElevenLabs
The ElevenLabs module, which generates audio from text content, is addressing a significant quality issue that affects user experience. A problem was identified where audio playback cuts off after approximately 5,000 characters, even though the service supports twice that length. This means users are only hearing half of the content they expect, which directly impacts accessibility and content delivery.
The issue stems from how longer text is processed: content is split into segments, converted to audio separately, and then reassembled. The current method of joining these audio segments is causing truncation. A fix for the audio truncation issue has been proposed with a merge request awaiting review. Once resolved, this will restore full-length audio generation and ensure content is delivered as intended.
The module remains in active development with normal issue resolution activity for a project at this stage.
How can I help on this project?
- Prioritize review and approval of the pending fix to restore full audio functionality for end users.
- Consider allocating resources for broader quality assurance testing to identify similar edge cases before they reach production.
Contributors: Anne Bonham (annebonham)
FlowDrop
FlowDrop made progress on stability and configuration control over the past 24 hours. A defect that prevented UI themes from rendering correctly in the editor was resolved. Previously, stylesheets were being inserted into the wrong part of the page, causing visual themes to fail. This issue is now fixed, ensuring the editor displays as intended.
A separate fix addressed a problem in the chat feature where conversations involving many tool calls would stop responding when memory limits were reached. This should improve reliability for users working with AI-assisted workflows.
New site-level controls were added, allowing administrators to enable or disable the Command Console and AI Assistant features independently. A deprecated "Sync to Cloud" option was also removed from the interface.
The underlying JavaScript library was updated to version 2.8.0, and a new alpha release (2.6.0-alpha1) was prepared incorporating these changes. Documentation and tooling configurations were updated accordingly.
One issue remains open related to the page rendering fix, though the underlying work has been completed.
How can I help on this project?
- Prioritize user testing of the new alpha release to validate the editor rendering and chat reliability fixes before a stable release.
- Clarify the roadmap for feature toggles: determine which capabilities should remain optional versus becoming defaults.
Contributors: Shibin Das [8]
References
[1] LLM: Metatag generates and stores tags that were never configured, and keeps only one of them
[2] Allow Field Widget Actions to target a specific automator 2.x
[5] Add interactive refinement capability to Field Widget Actions 2.x
[7] Restrict access to the AI API Explorer permission
[8] SetupVdbServer and SetupVdbIndex config actions aren't idempotent, recipe re-apply fails
[11] textToImage() base64-decodes the image payload twice
[12] Regression in ai_translate: Layout Builder content is no longer translated
[14] Issue #3586657: Allow Field Widget Actions to target a specific automator 2.x
[15] Issue #3586655: "Add interactive refinement capability to Field Widget Actions 2.x"
[17] Issue #3586655: "Add interactive refinement capability to Field Widget Actions 2.x"
[20] bug: #3586730 textToImage() base64-decodes the image payload twice
[21] Support media entities for vision models
[22] Stable 1.0.0 release for use in Drupal CMS recipes
[65] Add batch embeddings
[66] indexItems() throws TypeError on array_diff() because $skipDeleteItemIds is never declared
[67] Issue #3614504: Fix TypeError in indexItems() from undeclared $skipDeleteItemIds property
[68] feat: #3610509 Add batch embeddings
[76] Canvas AI: Proper chat history management in the backend
[77] Canvas AI: Prevent the selected Tool from changing during a chat turn
[78] Site template installation fails with Canvas 1.11
[79] Canvas AI: Unify error handling in `canvas_component_agent`'s tools
[85] Canvas AI: Unify error handling in the dev page builder agent's tools
[96] Improve the Brand Kit Fonts UI
[97] #3591952 Canvas AI: Prevent the selected Tool from changing during a chat turn
[105] Draft: task(AI): #3592060 Canvas AI: Update orchestrator for content-only / page-variant chrome
[107] 3592021: Add AiResponseValidator::formatErrors() to render accumulated tool...
[110] feat(AI): #3592032 Canvas AI: Keep the agent history across chat turns in the backend
[111] Unify error handling in all tools used by the dev page builder agent.
[113] Sync brand kit colors through canvas.brand-kit.json in the Canvas CLI
[117] CCC Pre-rc1 QA: Context items settings testing
[118] Disabling "Create new revisions by default" still creates a new revision
[122] CCC Pre-rc1 QA: Test context item creation and workflow
[123] CCC Pre-rc1 QA: Context scope testing
[126] How often is the ecosystem data updated?
[127] Issue #3585221: Rebuild the ecosystem
[131] Configured actions are invisible in the "Manage form display" summary row
[133] Add action summary to manage fields ui
[138] Regression: Layout Builder content is no longer translated
[139] Resolve "Regression: Layout Builder content is no longer translated"
Shipped
- AI Field Widget Actions 2.x interactive refinement merged — The interactive refinement capability was ported from 1.x to 2.x via two merge requests, introducing AutomatorFieldWidgetActionTrait and AutomatorRefineAction for the 2.x plugin collection architecture [5][15][17].
- AI textToImage double-decode bug in progress — Investigating a regression in OpenAiBasedProviderClientBase::textToImage() that corrupts generated images by base64-decoding the payload twice [11][20].
- AI SetupVdbServer and SetupVdbIndex config action idempotency in progress — Working on adding existence checks to config actions' apply() methods to prevent recipe re-application failures [8][19].
- AI Integration ECA 1.0.0 stable release shipped — Module reached stable release milestone for Drupal CMS recipe compatibility, with token handling refactored to use token replacement throughout [22][23][24].
- Postgres VDB Provider indexItems() TypeError in progress — Working on fix for fatal error caused by undeclared $skipDeleteItemIds property in PostgresProvider::indexItems() [66][67].
Ongoing
- AI Field Widget Actions automator targeting under review — Work continues on adding optional $specificAutomatorId parameter to AiAutomatorEntityModifier::saveEntity() for filtering execution to a specific automator [2][14].
- AI streaming chat hostname filtering bug blocks URL rendering — StreamChatMessageIteratorTrait corrupts URLs inside HTML attributes by forcing plain-text mode in HostnameFilter [13].
- AI translate Layout Builder regression fix in review — Merge request introduces ContainerFieldTextExtractor to handle layout field access checks that block inline block translation [12][138][139].
- Canvas RecipeAppliedEvent listener blocks site template installation — Container invalidation issue prevents recipe re-application and causes Canvas 1.11 site template installation failures [71][78].
- OpenAI moderation endpoint reads confidence scores instead of violation flags — Critical bug causes false positives by checking score floats rather than flagged boolean values [47].
AI (Artificial Intelligence)
The module saw significant activity around Field Widget Actions and bug fixes. The Add interactive refinement capability to Field Widget Actions 2.x port was merged via two separate merge requests (!2002 and !1966), bringing the interactive refinement feature from 1.x into the 2.x branch. This required adapting the implementation to 2.x's plugin collection architecture, including a new AutomatorFieldWidgetActionTrait and AutomatorRefineAction class. Related work continues on Allow Field Widget Actions to target a specific automator 2.x, which adds an optional $specificAutomatorId parameter to AiAutomatorEntityModifier::saveEntity() for filtering execution to a specific automator.
Several critical bugs were identified during the period. The textToImage() base64-decodes the image payload twice regression in OpenAiBasedProviderClientBase::textToImage() silently corrupts generated images by double-decoding the payload. The SetupVdbServer and SetupVdbIndex config actions aren't idempotent issue prevents recipe re-application due to missing entity existence checks in the config actions' apply() methods. Additionally, Streaming chat forces plain-text hostname filtering was reported, where StreamChatMessageIteratorTrait breaks URLs inside HTML attributes by forcing plain-text mode in HostnameFilter.
How can I help on this project?
Review the open merge request !2001 for the textToImage double-decode fix and help verify the fix with test coverage. Pick up the unassigned Content Entity Seeder JSON Schema bug, which involves fixing ContextDefinitionNormalizer wrapping issues. Assist with the assigned AI API Explorer permission security issue by reviewing the proposed permission restriction.
AI Integration - ECA
The AI Integration - ECA module saw significant activity during the reporting period, with three issues closed and a major refactor merged. The module reached a stable 1.0.0 release milestone, making it compatible with Drupal CMS recipes that require minimum-stability: stable. This addresses the Stable 1.0.0 release for use in Drupal CMS recipes request and enables broader adoption in packaged distributions.
A token handling refactor was completed with the merge of MR !26, which addresses Replace token references by token replacements. The change standardizes token input and mask fields to use token replacement rather than token references throughout the module, following the pattern established in earlier work. The commit touched 1355 lines of code.
Support for media entities in vision models was also completed during this period, closing Support media entities for vision models. This enhancement enables media field files to be sent to AI models with prompts for categorization.
How can I help on this project?
With the stable release shipped, contributors could test integration with Drupal CMS recipes and report any issues encountered. Testing the new media entity support with various vision models and file types would help validate functionality across different AI providers.
Contributors: Jürgen Haas (jurgenhaas) [1]
OpenAI Provider
The OpenAI Provider saw significant housekeeping activity over the past 24 hours, with 24 issues closed as part of ongoing maintenance. Several closed issues relate to feature completions from earlier development cycles, including Add missing OpenAI TTS voices to api_defaults.yml, Support batched embeddings, and Add reasoning output for o1-series models. Bug fixes included resolving "Selected API Key not working" after update to AI 1.3.0 and streaming chat responses giving undefined getTools() method errors.
Active development continues on several fronts. A merge request for test coverage for Whisper (speechToText) and TTS (textToSpeech) is under review, adding 43 new tests for audio operation paths. Two critical bugs remain open: moderation reading confidence scores instead of violation flags, causing false positives, and hardcoded model in moderationEndpoint that should respect configuration. Feature requests include fast mode support for GPT models and addressing GPT 5.4 call failures related to reasoning_effort parameters.
How can I help on this project?
Review the open merge request for Whisper and TTS test coverage. Investigate and patch the moderation confidence score bug, which needs to read flagged boolean values instead of score floats. Refactor the hardcoded moderationEndpoint model to respect operation-type configuration with fallback logic.
AWS Bedrock Provider
A bug was identified affecting reasoning models in the AWS Bedrock Provider. The issue concerns how the module reads responses from Amazon Bedrock's Converse API. Currently, chat() reads only the first content block, assuming it contains text. However, reasoning models return their reasoning in a separate content block that arrives first, causing the module to return an empty ChatMessage when it encounters reasoningContent instead of text. Additionally, model-specific parameters passed through the config array are rejected by the Converse API, which expects them in the additionalModelRequestFields structure.
A merge request addressing both issues is currently open: Issue #3594715: Read the first content block that carries text, and route model-specific parameters to additionalModelRequestFields. The proposed solution scans content blocks to find the first one containing text and routes model-specific parameters to the correct API field.
How can I help on this project?
Review and test the open merge request addressing reasoning model responses, particularly with different Bedrock models that use reasoning content blocks. Verify the parameter routing logic works correctly with various model-specific configurations.
Contributors: Besart Bytyqi (besart)
Microsoft Azure AI
No merge requests or commits were pushed during the reporting period. However, a schema validation issue was reported: Structured output: an invalid JSON schema is silently accepted instead of throwing an exception. The bug describes how malformed JSON schemas—where required properties are not defined in the properties object—are passed through to the Azure API without local validation, preventing developers from catching configuration errors early.
The issue remains open with no related merge requests or assigned maintainer. This represents a data integrity concern for sites using structured output features, as invalid schemas may produce unpredictable results from the Azure provider without clear error messages.
How can I help on this project?
- Pick up the JSON schema validation bug and implement client-side schema validation before forwarding requests to Azure.
- Test the module's structured output functionality with edge cases and document any additional validation gaps.
Postgres VDB Provider
Development activity this period focused on batch embedding support and a critical bugfix. Work continued on Add batch embeddings, which aligns this provider with the AI module's new batch embeddings capability for improved indexing performance. The related merge request remains under review, introducing the ability to embed and store multiple chunks per request rather than processing one at a time.
A new issue was opened reporting a TypeError in the indexItems() method: indexItems() throws TypeError on array_diff() because $skipDeleteItemIds is never declared. The problem occurs because the $skipDeleteItemIds property is referenced on line 685 but never declared or initialized in PostgresProvider or its parent class, causing PHP to treat it as null and triggering an array_diff() type error during indexing operations. A fix has been prepared addressing the undeclared property.
How can I help on this project?
Review MR !30 for batch embeddings support, testing the indexing performance improvements with multiple chunks. Review MR !33 which fixes the TypeError in indexItems() by properly declaring the $skipDeleteItemIds property.
Contributors: Sergiu Nagailic (Nikro), Zeeshaan khann (zeeshan_khan)Drupal Canvas
Activity over the past 24 hours centered on the Canvas AI chat tooling, compatibility improvements, and several open merge requests targeting error handling and user experience refinements.
The fix to prevent the selected Tool from changing during a chat turn was merged, locking the tool selection for the entire turn in both the UI and backend. A critical bug causing recipe application to fail with a synthetic service error—RecipeAppliedEvent listener installs a module and invalidates the container for every listener after it—is under review and appears related to Canvas 1.11 site template installation failures reported in Site template installation fails with Canvas 1.11.
Several AI-focused merge requests remain in progress, including unified error handling for component agent tools in Canvas AI: Unify error handling in canvas_component_agent's tools and backend chat history management in Canvas AI: Proper chat history management in the backend. Work also continues on removing obsolete region-based instructions from the page and template builder agents in Canvas AI: Remove obsolete region-based AI instructions and the unused page variant descriptions form.
Other notable open requests include improved Canvas CLI compatibility with Canvas versions prior to 1.11, iframe sandbox hardening via postMessage defense in depth, and a fix ensuring Canvas-only text format guidelines no longer appear on non-Canvas forms.
How can I help on this project?
- Review the open merge request for RecipeAppliedEvent listener installs a module and invalidates the container for every listener after it, which is blocking recipe application and site template installs.
- Test and review Remove Canvas-only text format guidelines from non-Canvas forms, which has an open MR ready for feedback.
Contributors: **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Adam G-H (phenaproxima), Ahmad Khalil (ahmad-khalil-imagex) [1], AKHIL BABU (AkhilBabu), Bálint Kléri (balintbrews), Chandan Singh (chandu7929), dpi, Feliksas Mazeikis (f.mazeikis), Fons Vandamme (f0ns), Georgi Ivanov (givanov), John Locke (freelock), Jordan Graham (COBadger), julio retkwa (julioretkwa), Konstantine Kirkitadze (kotekirkitadze), Lauri Timmanee (lauriii), Matt Hand (matthand), Narendra Singh Rathore (NarendraR), Ted Bowman (tedbow), utkarsh_33 (Utkarsh_33), Wim Leers (wimleers), wotnak
Context Control Center (CCC)
No code changes were merged or committed during this period. Activity focused on pre-RC1 quality assurance and issue triaging.
A new bug was filed: Disabling "Create new revisions by default" still creates a new revision. The revision setting at /admin/config/ai/context/settings/items is not being respected when existing AI Context Items are edited and saved. This appears to have been discovered during structured QA testing.
Multiple QA test plans covering context items, scopes, and settings remain in progress. One workflow test issue was closed. Two UX refinement tasks were opened: renaming the "Add AI Context Item" button and updating the context consumer listing to show subscription details in the configuration summary column.
Accessibility testing of the CCC overview dashboard is also underway, focusing on WCAG compliance checks including keyboard navigation and DOM structure.
How can I help on this project?
- Investigate and patch the revision setting bug in Disabling "Create new revisions by default" still creates a new revision, checking where the entity save logic ignores the configured default.
- Pick up QA testing on CCC Pre-rc1 QA: Context items settings testing or CCC Pre-rc1 QA: Context scope testing following the provided test scripts.
AI CKEditor
Activity this period focused on improving entity context handling for AI-powered text generation. Work continued on Send bundle and page path in entity_context so AI Context can scope unsaved entities and Site Sections, which addresses a bug where AI Context scoping fails in two scenarios: when editing unsaved entities (where the entity ID is empty and validateEntityContext() returns NULL), and when using the Site Sections module (where the entity being edited differs from the page's main entity). The issue has an open merge request that refactors how entity_context metadata is constructed and transmitted, ensuring bundle and path information are available even without a saved entity ID. No merges occurred during this period, though the MR remains under consideration for the AI Initiative Sprint.
How can I help on this project?
Review MR !16 to validate the entity_context refactor handles unsaved entities and Site Sections correctly. Test the changes against AI Context scoping rules to confirm context items are properly matched during text generation.
Contributors: Kristen Pol (kepol)
AI Dashboard
The Issue #3585221: Rebuild the ecosystem merge request was merged during this period, refreshing the ecosystem data to include 234 modules and 38 recipes as of September 10, 2026. The update also included a fix to the crawler to handle raw socket timeouts with retry logic. This addresses the question raised in How often is the ecosystem data updated?, with the ecosystem data now current as of the merge date.
How can I help on this project?
The AI Dashboard currently has limited open issues. Developers interested in contributing could review the ecosystem crawler implementation to identify additional edge cases or timeouts that may need handling, or explore the refreshed ecosystem data to verify accuracy and completeness of the 234 modules and 38 recipes now tracked.
Contributors: Rob Loach (robloach) [1]
Field Widget Actions
Two fixes were merged during the reporting period. A fatal error caused by a type mismatch in FieldWidgetActionBase::getDescription() was resolved by casting the TranslatableMarkup return value to string, fixing TranslatableMarkup returned as string causes fatal error. The change updates the method to properly handle the plugin definition's description attribute.
A usability enhancement was also shipped: Configured actions are invisible in the "Manage form display" summary row was closed after merging work that adds action summaries directly to the Manage form display interface. This makes it easier to identify which fields have actions configured without opening individual widget settings.
Three issues remain open. Target element lookup fails for select widgets tracks a bug in FieldWidgetActionBase::getTargetElement() where the hardcoded 'value' path fails for select, radios, checkboxes, and other multiple-value widgets. Two additional issues address error handling when removing actions and validating empty widget field values.
How can I help on this project?
Fix the target element lookup logic in FieldWidgetActionBase::getTargetElement() to support select and other multiple-value widgets as described in Target element lookup fails for select widgets. Investigate the "Remove action" bug reported in Bug when trying to "Remove action"? to identify the root cause.
AI translate
A regression affecting Layout Builder translations was identified and addressed during the reporting period. Since the changes introduced in the 1.3.2 and 1.4.1 security releases, Layout Builder content has silently failed to translate. The issue stems from TextExtractor::shouldExtract() performing an access('view') check on every field, while core's LayoutSectionItemList::defaultAccess() returns AccessResult::forbidden() unconditionally for all users, including user 1. This causes the layout_builder__layout field to be dropped before LbFieldExtractor can process it, preventing inline block content from being translated with both layout_builder_at and layout_builder_st.
A merge request was opened to resolve the Layout Builder regression, introducing ContainerFieldTextExtractor to handle the layout field appropriately.
Separately, a long-standing issue remains open regarding HTML markup corruption in formatted text fields, where AI models strip or alter HTML tags in text_with_summary and text_long fields during translation.
How can I help on this project?
Review and test the Layout Builder regression fix to validate it resolves the access check issue. Investigate the HTML markup preservation problem by proposing prompt engineering strategies or post-processing filters to maintain tag integrity.
Contributors: Sven Decabooter (svendecabooter), Carlos Busto Capeáns (cbccharlie)ElevenLabs
A critical bug affecting audio generation was identified during the reporting period. The Text-to-speech audio is truncated to the first ~5,000 characters because MP3 chunks are joined by raw byte concatenation issue documents a problem in ElevenlabsProvider::textToSpeech() where audio files are being cut short despite text being within the 10,000 character API limit. The function splits longer text into 5,000-character chunks and requests separate MP3 files from the ElevenLabs API, but the current implementation naively concatenates the binary data of complete MP3 files using string append operations. This approach fails because each MP3 response includes its own headers and metadata, resulting in only the first chunk playing correctly. A fix has been proposed via MR !5 with 282 lines of changes addressing the concatenation logic.
How can I help on this project?
Review MR !5 which fixes the MP3 chunk concatenation bug. Test the fix with text exceeding 5,000 characters to verify audio plays completely and transitions between chunks are seamless.
Contributors: Anne Bonham (annebonham)
FlowDrop
The bare editor/playground page renderer bug that caused stylesheets to leak into the document body has been fixed. The BarePageRenderer in flowdrop_ui_components was emitting a literal <head-placeholder> tag; because the bare page attaches no html_head elements, core's HtmlResponseAttachmentsProcessor never replaced the placeholder. The HTML parser then closed <head> prematurely, forcing all <link> tags into <body> and preventing UI themes (Drafter, Minimal) and skins from applying. The bare page head placeholder fix was committed.
A chat tool loop issue was also resolved: tool-heavy conversation turns no longer wedge when hitting the memory cap. The JavaScript library was bumped to version 2.8.0, and new site-wide switches were added for the Command Console and AI Assistant surfaces, with the defunct Sync to Cloud toggle removed. The 2.6.0-alpha1 release was re-stamped to include the chat tool loop fix, and changelog entries were prepared covering the chat tool loop, editor surface switches, and the bare page head fix.
How can I help on this project?
Review the recent commits for the bare page head placeholder fix to ensure edge cases around attachment processing are covered. Test the new Command Console and AI Assistant surface switches across different site configurations to confirm the settings persist correctly.
Contributors: Shibin Das [8]
References
[1] LLM: Metatag generates and stores tags that were never configured, and keeps only one of them
[2] Allow Field Widget Actions to target a specific automator 2.x
[5] Add interactive refinement capability to Field Widget Actions 2.x
[8] SetupVdbServer and SetupVdbIndex config actions aren't idempotent, recipe re-apply fails
[11] textToImage() base64-decodes the image payload twice
[12] Regression in ai_translate: Layout Builder content is no longer translated
[14] Issue #3586657: Allow Field Widget Actions to target a specific automator 2.x
[15] Issue #3586655: "Add interactive refinement capability to Field Widget Actions 2.x"
[17] Issue #3586655: "Add interactive refinement capability to Field Widget Actions 2.x"
[19] fix: #3586729 Add existence checks to `SetupVdbServer` and `SetupVdbIndex` config actions
[20] bug: #3586730 textToImage() base64-decodes the image payload twice
[22] Stable 1.0.0 release for use in Drupal CMS recipes
[23] Replace token references by roken replacements
[24] fix: #3585027 Use token replacement for the token input and mask fields
[66] indexItems() throws TypeError on array_diff() because $skipDeleteItemIds is never declared
[67] Issue #3614504: Fix TypeError in indexItems() from undeclared $skipDeleteItemIds property
[78] Site template installation fails with Canvas 1.11
[138] Regression: Layout Builder content is no longer translated
[139] Resolve "Regression: Layout Builder content is no longer translated"