Daily Digest
Daily Digest – 2 June 2026
2026 Capabilities Progress
- Page generation — Significant progress on Canvas AI translation and component handling, with merged fixes for language-prefixed URLs and translation loss during publishing [94][100], plus ongoing work to expose block properties to agents [115] and restrict component catalogs during testing [113]. Next milestone is completing symmetric translation features and conflict resolution UI.
- Context management — The Context Control Center is preparing for community beta testing with work on recipe naming conventions [176], integration documentation [180], and scope extension capabilities [181]. Next milestone is launching beta testing program and updating project documentation with videos [179].
- Background agents — Progress on queue reliability with deduplication logic to prevent redundant AI calls when content is saved multiple times [7][72], and work to prevent only one queue item processing per cron run [15]. A fix for data-type conversion issues in agent configuration is ready for review [92]. Next milestone is merging queue improvements and expanding event hooks for pre-AI triggers [45].
- Design system integration — Canvas saw progress on component version propagation across translations [107] and component eligibility detection [101][143], plus work on entity reference selection UI [110][111][154]. Next milestone is completing symmetric translation for component updates and stabilizing the entity reference selection interface.
- Content creation and discovery — Development advanced on rich-text image description support for automators [2][67], interactive refinement for field widget actions [57][68][187], and CKEditor streaming fixes [4][47]. Critical bugs blocking CKEditor prompt creation [3] and Gemini streaming [4] remain open. Next milestone is resolving streaming bugs and merging image description and refinement capabilities.
- Advanced governance — Two critical guardrails fixes were merged: infinite recursion prevention for global LLM-based guardrails [26][75] and improved JSON parsing for topic restrictions [28][74]. Additional guardrails work includes PII detection [10] and better documentation [32][63]. Next milestone is clarifying where guardrails can be applied and adding them to Automators in AI 2.0 [48].
- Intelligent website improvements — No direct progress today.
- Multi-channel campaigns — A new text-to-music operation type was initiated to standardize music generation APIs across providers [19], expanding content creation beyond text and images. Next milestone is completing the operation type implementation and determining provider support.
Shipped
- AI Module: Global Guardrails Infinite Loop Fix — Fixed a critical bug where global guardrails that called AI models (such as content moderation checks) triggered infinite recursive loops, making the feature unusable in production [26][75].
- AI Module: Improved JSON Parsing for Guardrails — Updated the RestrictToTopic guardrail to handle AI responses wrapped in prose, improving reliability with models that don't return pure structured output [28][74].
- Canvas: Translation Preservation During Publishing — Resolved a bug where publishing a Canvas page through auto-save deleted all translations in non-default languages, preventing content loss for multilingual sites [100][142][144].
- Canvas: Language-Prefixed URL Support — Fixed the Canvas editor to work correctly when accessed via language-prefixed URLs like /es/canvas/, enabling use on multilingual sites with URL-based language negotiation [94][174].
- Field Widget Actions: Simplified Configuration — Deprecated a confusing configuration property and enabled administrators to control whether action buttons appear once per field or per item, simplifying setup without custom code [185][186][188].
Ongoing
- AI Module: Non-Streaming Failures in Fiber Contexts — Non-streaming chat calls fail when run inside PHP Fibers because the OpenAI client forces streaming mode, breaking the AI Search Block when streaming is disabled [1].
- AI Module: Gemini Streaming Errors — Streaming requests to Gemini 2.x models return 400 errors due to malformed payloads from the underlying PHP client, blocking production use of Gemini streaming [4].
- AI Module: Rich-Text Image Analysis — Development underway to enable AI Automators to analyze images embedded in formatted text fields, allowing automated summaries and quality checks to consider visual content [2][67].
- Canvas: Translation Deletion Routes — Work in progress on routes for deleting individual translations and ensuring component version updates propagate to all language versions [95][138].
- Context Control Center: Community Beta Testing — Preparing for broader community testing before the first release candidate, including organizing beta testers and updating project documentation with videos and getting-started guides [178][179].
AI (Artificial Intelligence)
Development Progress
The team merged two important fixes during the period. The first addressed a critical infinite-loop bug where global guardrails that themselves called AI models (such as the Restrict to Topic guardrail) would recursively trigger themselves, making global guardrails unusable in production. A re-entrancy guard was added to prevent guardrails from evaluating their own AI calls. The second merged fix ensures the RestrictToTopic guardrail can parse JSON responses wrapped in prose, improving reliability with models that do not yet return structured output.
Several new features entered development. Work began on rich-text image description support for AI Automators, which will allow automations (summaries, quality checks) to analyze images embedded in formatted text fields. A merge request is open with 2,280 lines of changes. A new text-to-music operation type was started to standardize music generation APIs across providers. Queue deduplication logic is in progress to prevent redundant AI calls when editors save content multiple times before cron runs, and interactive refinement for Field Widget Actions (613 lines) will let editors iteratively improve AI-generated content through conversational prompts before accepting it.
Five issues were closed, including the release of version 1.4.0, addition of a SECURITY.md file for responsible disclosure, and fixes to video recording in tests and the release tagging script.
Risks and Blockers
Two high-priority bugs remain open. Non-streaming chat calls fail when run inside PHP Fibers because the OpenAI client forces streaming on unconditionally; this affects the AI Search Block when streaming is disabled. Streaming requests to Gemini 2.x models return 400 errors due to malformed payloads from the underlying PHP client; non-streaming works. Both issues impact live deployments and are assigned for resolution.
A fatal error in the CKEditor prompt creation workflow is assigned and under investigation. Several usability and documentation gaps were reported, including missing guidance on where guardrails can be applied, inconsistent naming ("AI Guardrails" vs. "AI Moderation Guardrails"), and unclear documentation for guardrail thresholds.
How can I help on this project?
- Prioritize resourcing for the two streaming bugs (Fiber conflicts and Gemini compatibility), which are blocking production use cases.
- Commission a guardrails usage guide that clarifies where they can be applied (Automators, Assistants, Agents, CKEditor) and provides threshold configuration examples for non-technical site builders.
Drupal AI Initiative
The Drupal AI Initiative focused on partnership management and organizational improvements during this period. The team closed an issue to scrub partner mailing lists of non-partner email addresses, removing contacts who had been incorrectly added through event registrations. This ensures partner communications remain properly targeted and confidential.
Several new partnership support activities were initiated. The team is working to share recent partners meeting recordings and slides with potential partners currently in discussions, helping approximately 15 prospective organizations understand the initiative's progress. New work began on creating private partner channels to improve communication with partner organizations and their contributors.
Marketing efforts are advancing, with plans to source case studies from the upcoming AI Summit Rotterdam in September, and preparation to republish an article about AI Summit NYC on the Drupal AI blog. Administrative tasks included notifying partner contributors to add their GitLab usernames for improved reporting capabilities.
How can I help on this project?
- Accelerate partnership conversions by engaging directly with the 15 potential partners currently in discussions, emphasizing strategic alignment and business value.
- Ensure adequate resourcing for the September Rotterdam Summit to maximize case study collection and partnership development opportunities.
OpenAI Provider
The OpenAI Provider module saw one new development effort during this period. A merge request was opened by Artem Dmitriiev (a.dmitriiev) to address Fix unsupport max_tokens parameter. This work corrects how the module handles token limits when communicating with OpenAI's services, which will improve reliability and prevent errors when users configure content generation settings.
The fix is currently under review and has not yet been integrated into the module. Once merged, users should experience fewer configuration-related issues when setting up AI content generation features.
How can I help on this project?
- Ensure the open merge request receives timely code review to prevent delays in delivering the token parameter fix to users.
- Consider allocating resources for testing once the fix is merged to validate it resolves the issue across different use cases.
MCP Client
The MCP Client project saw development work continue on compatibility with the latest version of Drupal. Roberto Peruzzo (robertoperuzzo) opened a draft merge request addressing compatibility issues with Drupal 11.3, which introduced changes to how certain PHP operations work. This work ensures the module will continue to function properly as users upgrade their Drupal installations to the newest version.
The draft status indicates this is still work in progress, which is normal for active development. No issues or merge requests were finalized during this period, suggesting ongoing refinement of solutions before they are ready for deployment.
How can I help on this project?
- Ensure the development team has sufficient time allocated to complete and review the Drupal 11.3 compatibility work before the next planned release.
- Clarify the timeline and priority for Drupal 11.3 support to help the team plan testing and release scheduling.
Gemini Provider
The Gemini Provider module, which enables integration with Google's Gemini AI service, saw continued development work on capability declaration features. This work is part of the broader AI Initiative Sprint focused on product development.
Artem Dmitriiev (a.dmitriiev) opened a new feature request to properly declare what the Gemini provider can do within Drupal's AI framework. Currently, the provider doesn't explicitly state its capabilities, which will become important as the AI module begins checking for these declarations. Juan Correa (jucs7) has been assigned to work on this, and a merge request is already in progress. This work ensures the module will properly communicate its features to site administrators and other system components, enabling better AI service selection and configuration.
No code was merged during this reporting period. Activity remains focused on active development and review.
How can I help on this project?
- Ensure Juan Correa has sufficient time allocated to complete the assigned capability declaration work.
- Consider whether additional reviewer resources are needed to maintain development velocity as merge requests await review.
AI Agents
Activity over the last 24 hours focused on resolving a technical issue affecting how the AI Agents module handles content operations. When users try to configure automated agents to work with specific content items, they have been encountering errors due to how the system processes forced configuration values.
AKHIL BABU (AkhilBabu) advanced work on hide_property skips data-type conversion for forced values, breaking non-scalar context types, marking it as ready for final review. This fix addresses a problem where pre-configured agent settings weren't being properly translated into the format the system expects, preventing agents from executing tasks like saving content. The issue originated from troubleshooting reported in Proper value for entity__colon__node context?, where users documented difficulty setting up agents with content-saving capabilities.
Once merged, this will enable more reliable agent configuration, particularly for scenarios where administrators want to pre-define which content items agents should interact with.
How can I help on this project?
- Prioritize code review resources to merge the ready fix, unblocking users who need reliable agent configuration.
- Consider expanding testing capacity to catch data handling issues earlier in development.
Tool API
The Tool API module, which enables AI agents to invoke operations within Drupal, saw limited activity in the past 24 hours. An open task focused on File Input Handling remains unassigned. This work involves researching how the module should securely accept and process file inputs from AI agents—a critical capability for expanding what automated systems can accomplish within the platform.
The issue is labeled as research and proof-of-concept, meaning the team is still exploring how best to approach file handling, input formats, and security considerations. Once this exploratory phase concludes, it will inform decisions about what features to build and whether they belong in this module or elsewhere. No code changes or merge requests were completed during this period.
This represents foundational work to ensure the module can safely support more complex AI-driven workflows in the future.
How can I help on this project?
- Assign development resources to the file input handling research task to accelerate progress on AI agent capabilities.
- Prioritize security review resources early in the research phase to ensure file handling approaches meet organizational risk standards.
Drupal Canvas
Over the past 24 hours, the Canvas project addressed several critical issues affecting multilingual sites and made progress on translation infrastructure.
Two bugs affecting language support were resolved and merged. First, the team fixed a problem where publishing a Canvas page via auto-save dropped all non-default-language translations. This issue caused content editors to lose translated versions of pages when publishing changes. Second, the team resolved an issue where the Canvas editor broke when accessed with language-prefixed URLs (such as /es/canvas/), which prevented editors from working on multilingual sites that use URL-based language negotiation.
Development continued on symmetric translation features. Work is underway on routes for deleting translations and ensuring component version updates propagate to all translations. The team also improved image rendering by adding larger srcset candidates to prevent browser upscaling, which will deliver better visual quality to end users.
Additional work focused on test reliability, developer tooling, and AI-powered page generation capabilities. Progress on conflict detection and entity reference selection interfaces continues in draft.
How can I help on this project?
- Prioritize testing of the translation deletion route and component version propagation features to ensure they meet editor needs before stable release.
- Allocate resources for conflict resolution UI completion, which will enable safer collaborative editing workflows.
Context Control Center (CCC)
The Context Control Center team is preparing for broader community testing as the module approaches its first release candidate. With core features nearing completion, the focus has shifted to validation, integration feedback, and refinement based on real-world use.
Several planning discussions were initiated in the past day. The team is working through recipe naming conventions and locations to determine how to package different configurations for various user needs, including a minimal version for Drupal CMS, a full-featured setup, and a demo with sample content. Work is also underway to organize beta testing with the community and to update project documentation with videos and getting-started resources to support new testers.
Two integration-focused issues are informing the product roadmap. The team is evaluating the empathy module integration as an early adopter case study, and defining configuration steps for document loader support to enable users to pull context from markdown, PDFs, text files, and URLs.
A merge request addressing configuration validation was opened by Sven Decabooter (svendecabooter), and Ahmad Khader (Ahmad-Khader) is working on a scope extension issue that affects how downstream modules can customize the system.
How can I help on this project?
- Prioritize recruiting beta testers from your network or partners to provide feedback before the release candidate lockdown.
- Clarify strategic requirements for Drupal CMS integration, particularly around acceptable dependencies and feature scope.
Field Widget Actions
The Field Widget Actions module made steady progress over the past 24 hours, completing two improvements to how content editors can configure AI-assisted field actions.
The team merged work to deprecate a confusing configuration property, simplifying how administrators set up these tools. This builds on recently completed work that now allows site administrators to configure whether action buttons appear once per field or multiple times per item, giving them flexibility to match the tool to their content workflows without needing custom development.
A draft proposal for automatic field actions is under review by Ahmad Khader (Ahmad-Khader), which would eliminate manual button clicks when AI suggestions are ready, streamlining the editing experience. Separately, Edward Zwart (ezeedub) has proposed an interactive refinement capability that would let editors iteratively improve AI-generated content before accepting it, potentially increasing content quality and editor confidence in the tool.
How can I help on this project?
- Review and provide feedback on the two open proposals for automatic actions and interactive refinement to help the team prioritize which user experience improvements deliver the most value.
- Ensure the team has access to content editors for usability testing once these features are ready for evaluation.
FlowDrop
Over the past 24 hours, activity on FlowDrop focused on issue assignment and triage. Three issues were updated, all assigned to Shibin Das (D34dMan) for resolution.
Two interface alignment problems were identified and assigned: Broken styles on Range component and Filter buttons on FlowDrop listing pages are not well aligned. Both affect the visual presentation of user interface elements, which could impact user experience and perception of product quality. Addressing these will ensure the interface meets expected standards.
Additionally, work continues on Add file and audio input to the playground, a feature request to expand input options beyond text. This would allow users to upload images for processing and provide voice input as an alternative to typing, broadening accessibility and use cases for the playground environment.
No code was merged or committed during this period. The focus remains on planning and assigning work to move these improvements forward.
How can I help on this project?
- Ensure Shibin Das has adequate capacity to address the three assigned issues, or consider adding design and frontend development resources to the team.
- Clarify priority between user interface fixes and new feature development to help the team sequence their work effectively.
References
[1] non streaming broken (fiber branch)
[2] Add rich-text image description support to AI Automators
[3] "Create new prompt" button doesn't work in CKEditor plugin configuration
[4] ai_ckeditor: streamGenerateContent causes 400 Bad Request with Gemini 2.x models
[7] AI Automators Queue/Cron: prevent duplicate queue items when entity is saved multiple times
[10] checksum-validated PII guardrail plugins (Luhn for credit cards, MOD-97 for IBANs)
[15] Only one AI Automator worker queue item is processed per cron execution
[19] Add text_to_music operation type with required prompt and optional lyrics
[26] Global LLM-based guardrails cause infinite recursive LLM calls (no re-entrancy guard)
[28] RestrictToTopic guardrail should use the prompt JSON decoder service
[32] Where can Guardrails actually be used?
[45] Ai Automators could need more Events before asking AI
[47] CKEditor AI streaming fails for OpenAI when Guzzle uses StreamHandler for "stream => true" requests
[48] Add guardrails to Automators in AI 2.0
[57] Add interactive refinement capability to Field Widget Actions
[63] Guardrail set - "Stop threshold" documentation
[67] Issue #3586478: "Add rich-text image description support to AI Automators"
[68] Issue #3586468: "Add interactive refinement capability to Field Widget Actions Automation"
[72] feat: #3586481 Prevent duplicate Queue/Cron items when entity is saved multiple times
[74] Issue #3586469: Use prompt JSON decoder service in RestrictToTopic guardrail
[75] Resolve "Global LLM-based guardrails cause infinite recursive LLM calls (no re-entrancy guard)"
[95] Create Routes for Deleting Translations
[100] Publishing a canvas_page via auto-save API drops all non-default-language translations
[101] removeReason, updateReasons are never called when a component becomes more compatible
[107] Symmetric translation: component instance version updates must propagate to all translations
[110] [PP-1] Entity Reference Selection UI
[111] Backend APIs for Entity Reference Selection
[115] Canvas AI: Expose Props of Blocks to the Agent
[138] Resolve "Create Route for Delete Translation"
[143] fix(Component sources): clear reasons and re-enable when component becomes eligible
[144] Fix translation related behaviour of auto save
[154] Draft: feat(Theme builder): #3585355 Entity Reference Selection UI
[176] [Discuss] Recipe naming conventions and locations for AI Context (CCC) recipes
[178] CCC beta / pre-rc1 community testing
[179] Add CCC beta tester info to the project page
[181] hook_ai_context_scope_values_alter() is not honored in scope value forms
[185] Deprecate multiple property in plugin attribute
[186] Allow "Multiple" to be configured in widget
[187] feat: #3547306 Add interactive refinement capability to Field Widget Actions
[188] Issue #3578821: Deprecate the multiple attribute plugin property
Shipped
- Global LLM-based guardrails infinite recursion fix — Marcus Johansson merged a fix preventing unbounded recursion when LLM-based guardrails like RestrictToTopic are configured globally [26][75].
- RestrictToTopic guardrail JSON decoder service — Avinash jha merged a change switching RestrictToTopic from json_decode to ai.prompt_json_decode service to handle LLM responses wrapped in prose or markdown fences [28][74].
- Canvas auto-save translation data loss fix — Ted Bowman merged a critical fix ensuring ApiAutoSaveController properly handles translation data during publishing, preventing loss of non-default-language translations [100][144].
- Canvas image srcset upscaling prevention — Bálint Kléri merged a fix to the canvas:image template adding the next larger srcset candidate to prevent unwanted browser upscaling [102][145].
- Field Widget Actions multiple property deprecation — Artem Dmitriiev merged deprecation of the multiple attribute plugin property in favor of configuration-based approach, remaining in 1.3.x with removal planned for 2.0.x [185][188].
Ongoing
- AI Automators rich-text image description support — Levente Besenyei opened a 2280-line MR enabling AI-based description generation for images embedded in formatted text fields [2][67].
- Non-streaming broken in fiber branch — OpenAiBasedProviderClientBase::chat line 341 silently forces streaming inside PHP Fibers, breaking non-streaming mode [1].
- AI Automators duplicate queue item prevention — Christoph Breidert opened an MR adding deduplication logic to QueueWorkerProcessor::modify to prevent duplicate queue items when entities are saved multiple times [7][72].
- AI Agents hide_property data-type conversion bug — AKHIL BABU advanced work to RTBC on fixing tool properties with both force_value and hide_property enabled failing to convert forced values to proper data types for entity references, lists, or structured data [92].
- CCC hook_ai_context_scope_values_alter not honored — Joshua Fernandes reported the hook exists but is not consumed by AiContextAgentForm or AiContextItemForm, blocking modules like AI Empathy Evaluation from extending scope values [181].
AI (Artificial Intelligence)
Activity in the AI module ecosystem over the past 24 hours focused on closing critical bugs, improving guardrails functionality, and preparing for the 2.0 release track.
Merged and closed: Marcus Johansson (Marcus_Johansson) merged MR !1612 fixing Global LLM-based guardrails cause infinite recursive LLM calls, which resolved a re-entrancy bug where LLM-based guardrails (e.g., Restrict to Topic) triggered unbounded recursion when configured globally. Avinash jha (avinash.jha) merged MR !1614 for RestrictToTopic guardrail should use the prompt JSON decoder service, switching from json_decode to ai.prompt_json_decode to handle LLM responses wrapped in prose or markdown fences. Documentation improvements landed via MR !1594 for Rewrite developer third-party module docs, now focusing on the provider form element. Several release and meta issues closed, including Release 1.4.0, Release 1.3.6, and Add SECURITY.md.
Opened and in progress: Levente Besenyei (LeventeB) opened Add rich-text image description support to AI Automators with MR !1628 (2280 lines), enabling AI-based description generation for images embedded in formatted text fields. Artem Dmitriiev (a.dmitriiev) is assigned to "Create new prompt" button doesn't work in CKEditor plugin configuration and ai_ckeditor: streamGenerateContent causes 400 Bad Request with Gemini 2.x models. wouters_f (wouters_frederik) reported non streaming broken (fiber branch), where OpenAiBasedProviderClientBase::chat() line 341 silently forces streaming inside PHP Fibers. Christoph Breidert (breidert) opened AI Automators Queue/Cron: prevent duplicate queue items with MR !1631, adding deduplication logic to QueueWorkerProcessor::modify().
Contributors active: Marcus Johansson, Avinash jha, Abhisek Mazumdar (abhisekmazumdar), Levente Besenyei, Artem Dmitriiev, Christoph Breidert, Michael Anello (ultimike), Rob Loach (robloach), Wolfgang Ziegler (fago), and more than a dozen others.
How can I help on this project?
- Review MR !1628 for Add rich-text image description support to AI Automators (2280 lines, needs testing).
- Pick up non streaming broken (fiber branch) — unassigned, no MR, major priority.
- Review MR !1631 for Queue/Cron duplicate prevention to help validate deduplication logic.
Drupal AI Initiative
The past 24 hours saw significant organizational housekeeping and planning activity. Kristen Pol (kepol) closed the task Scrub partner mailing lists of non-partner email addresses, removing non-partner contacts from both general and accountable Google Groups. Additionally, the related task Update DA community zoom to not notify host if someone joins meeting was marked closed.
Several partner management initiatives progressed. Work continues on Notify partner contributors to fill in the new gitlab username info, with emails sent and Slack notifications posted; follow-up on gaps remains pending. The Share recent partners meeting recording and slides with potential partners task was created to engage approximately 15 prospective partners. kepol is also establishing Create private partner channels for improved partner communication.
On the content front, Paul Johnson (pdjohnson) and Tim Hestenes Lehnen (hestenet) are working to Repost article - The Two Speeds of the Agentic Web from Martin's Acquia post to the Drupal AI blog. No code merges or commits occurred during this period.
How can I help on this project?
- Help publish Martin's article to the Drupal AI blog with proper attribution for the repost task.
- Contribute to the technical discussion on CLI entry point in Drupal Core to determine AI requirements.
- Review session submissions from the AI Summit Rotterdam for the case studies sourcing task.
OpenAI Provider
Development activity this period focused on compatibility improvements. Artem Dmitriiev (a.dmitriiev) opened a merge request addressing Issue #3593313: Fix unsupport max_tokens parameter, which targets issues with the max_tokens parameter for certain OpenAI models. The 13-line change is awaiting review.
No merge requests were merged or commits pushed during this reporting period, leaving this compatibility fix as the primary active work item requiring attention.
How can I help on this project?
- Review and test the open merge request for fixing the max_tokens parameter to help move it toward merge.
- Check the project's issue queue for other unassigned compatibility or bug fix issues that need attention.
MCP Client
The MCP Client module saw new development activity with Roberto Peruzzo (robertoperuzzo) opening a draft merge request to address ReactPHP event loop compatibility issues in Fiber contexts. The Draft: [#3565919] fix: Fixes the ReactPHP event loop in Fiber context (Drupal 11.3...) MR was created to resolve breaking changes introduced by Drupal 11.3's Fiber PHP implementation. The merge request includes 2183 lines of diff, indicating a substantial fix to ensure the module's event loop handling works correctly with Drupal's newer Fiber-based architecture.
No merge requests were merged or commits pushed during this reporting period, leaving the draft MR as the primary focus of ongoing work.
How can I help on this project?
- Review the draft ReactPHP event loop Fiber fix and provide technical feedback on the implementation approach.
- Test the MR branch against Drupal 11.3 installations to verify the Fiber compatibility fixes work as expected in real-world scenarios.
Gemini Provider
Activity on the Gemini Provider module remained quiet over the past 24 hours, with no merges or commits pushed during the reporting period. Work continues on Implement getSupportedCapabilities method in Provider class, which aims to expose provider capabilities through the AiProviderInterface's getSupportedCapabilities() method. Currently, the base class returns an empty array, and this implementation will allow Gemini provider to properly declare its capabilities. The issue has an open merge request (MR !38) authored by Artem Dmitriiev (a.dmitriiev) with 28 diff lines, and is assigned to Juan Correa (jucs7). This work is tied to capability checking being added in the AI module's issue #3586425.
No blocking issues were reported during this period, though progress appears to be waiting on review and merge of the capabilities implementation.
How can I help on this project?
AI Agents
Activity over the past 24 hours focused on resolving context handling issues in the AI Agents module. AKHIL BABU (AkhilBabu) advanced work on hide_property skips data-type conversion for forced values, breaking non-scalar context types (entity, list, JSON, YAML), moving it to RTBC status. This issue addresses a critical bug where tool properties with both force_value and hide_property enabled fail to convert forced values to their proper data types, causing raw scalars to be passed instead of entity references, lists, or structured data. The fix requires modifying AiAgentEntityWrapper::applyToolUsageLimitsToContext to properly handle colon replacements in property names.
Related discussion continued on Proper value for entity__colon__node context?, which remains in needs work status. This support request involves troubleshooting the Save content item tool, where entity__colon__node context validation fails when forced values are applied in agent configurations, though the same values work in Tools Explorer.
How can I help on this project?
Review the RTBC issue on hide_property data-type conversion to help move it toward merge. Test the proposed fix in AiAgentEntityWrapper::applyToolUsageLimitsToContext with various context types (entity references, lists, JSON). Provide feedback on entity__colon__node context handling to clarify expected behavior.
Tool API
Activity in the Tool API module remained quiet over the past 24 hours, with no commits or merge requests merged. The primary active issue is File Input Handling, which focuses on researching how tools should accept and process file inputs securely when invoked by AI agents. Originally reported by abhisekmazumdar, this task involves proof-of-concept work exploring input formats, file loading, and normalization schemas. The issue is currently unassigned and related to MR !73, though no new activity was recorded in the reporting period.
The module continues to support the AI Initiative Sprint, with this file handling research representing foundational work for enabling AI agents to operate on files through the Tool API.
How can I help on this project?
- Review the existing merge request !73 related to File Input Handling to provide feedback on the proof-of-concept approach for secure file processing.
- Test file input scenarios with AI agents to identify edge cases or security concerns not yet covered in the research.
Drupal Canvas
Translation support saw significant progress in the reporting period. Ted Bowman (tedbow) merged MR !1157, fixing a critical bug where publishing a canvas_page via the auto-save API would drop all non-default-language translations. The fix ensures ApiAutoSaveController properly handles translation data during publishing. A follow-up MR !1191 addressing language-prefixed URL support remains under review.
Component rendering improvements landed with Bálint Kléri's (balintbrews) merge of MR !1164, which fixes the canvas:image template to include the next larger srcset candidate, preventing unwanted browser upscaling when images are rendered at larger display sizes than the largest generated derivative.
Infrastructure work included Sally Young (justafish) fixing a CI issue where adding dev dependencies would inadvertently upgrade Drupal core minor versions (MR !1173), and Wim Leers (wimleers) adding PHPStan architecture tests for JsonSchemaPropsComponentSourceBase to prevent architecture violations (MR !1174). Tim Plunkett reverted changes related to escaped code in Canvas AI component creation, indicating ongoing work to resolve that issue properly.
Several MRs remain open addressing translation workflows, conflict resolution UI, and client-side validation improvements. Christian López Espínola (penyaskito) is actively working on multiple translation-related issues.
How can I help on this project?
- Review MR !1189 for auto-save translation behavior fixes, assigned to Christian López Espínola (penyaskito).
- Review MR !1153 implementing delete translation routes, assigned to Wim Leers (wimleers).
- Pick up unassigned AI panel is empty when it fails to initialize to improve error messaging.
Context Control Center (CCC)
The CCC project is gearing up for community testing ahead of a release candidate. Kristen Pol (kepol) opened several planning issues this period focused on beta readiness. CCC beta / pre-rc1 community testing was assigned to Michael Anello (ultimike) to recruit testers, while Add CCC beta tester info to the project page tracks work to improve onboarding documentation with session videos and setup instructions.
A significant API issue surfaced: Joshua Fernandes (joshua1234511) reported that hook_ai_context_scope_values_alter() is not honored in scope value forms. The hook exists but isn't consumed by AiContextAgentForm or AiContextItemForm, blocking downstream modules like AI Empathy Evaluation from extending scope values. Ahmad Khader (Ahmad-Khader) is now assigned.
Sven Decabooter (svendecabooter) opened MR 107 implementing proper config validation and #config_target for ai_context.settings. Other active work includes UX improvements to the context listing page and integration planning for Document Loader's MDXEditor submodule support.
How can I help on this project?
Review MR 107 implementing config validation and #config_target. Help with evaluating the AI Empathy integration by testing the module and reviewing its code to inform the roadmap. Document step-by-step instructions for Document Loader MDXEditor integration.
Field Widget Actions
The Field Widget Actions module saw significant progress over the past 24 hours, with one MR merged and active development continuing on two feature branches.
Artem Dmitriiev (a.dmitriiev) merged MR !20, which deprecates the multiple property in the FieldWidgetAction plugin attribute. This property, which controlled whether action buttons appear per form item or per field, is being removed in favor of a configuration-based approach. The deprecation will remain in the 1.3.x branch with full removal planned for 2.0.x. This resolves Deprecate multiple property in plugin attribute, which closed during the reporting period.
Two feature branches remain under active development. Ahmad Khader (Ahmad-Khader) has MR !22 open for Allow Automatic Field Widget Action, which would enable actions to trigger automatically without requiring user button clicks. Meanwhile, Edward Zwart (ezeedub) continues work on MR !19, introducing interactive refinement capabilities through a new RefinementAwareInterface and extending FieldWidgetActionBase::returnSuggestions() with refinement options.
How can I help on this project?
FlowDrop
No merge requests or commits were pushed during this period. Activity focused on issue triage and assignment. Shibin Das (D34dMan) was assigned to three issues: Broken styles on Range component, which affects the range component's visual rendering; Filter buttons on FlowDrop listing pages are not well aligned, where filter button alignment on listing views needs to match Drupal's standard Content view approach; and Add file and audio input to the playground, a feature request to expand playground input capabilities beyond textfields to support image uploads and voice-based audio transcription. All three issues were reported by David Galeano (gxleano), with one migrated from the legacy issue queue by drupalbot.
How can I help on this project?
These assigned issues could benefit from additional review once patches are available. You could also explore the codebase to identify CSS issues affecting the range component or investigate how Drupal core's Content view implements filter button styling to inform the alignment fix.
References
[1] non streaming broken (fiber branch)
[2] Add rich-text image description support to AI Automators
[7] AI Automators Queue/Cron: prevent duplicate queue items when entity is saved multiple times
[26] Global LLM-based guardrails cause infinite recursive LLM calls (no re-entrancy guard)
[28] RestrictToTopic guardrail should use the prompt JSON decoder service
[67] Issue #3586478: "Add rich-text image description support to AI Automators"
[72] feat: #3586481 Prevent duplicate Queue/Cron items when entity is saved multiple times
[74] Issue #3586469: Use prompt JSON decoder service in RestrictToTopic guardrail
[75] Resolve "Global LLM-based guardrails cause infinite recursive LLM calls (no re-entrancy guard)"
[100] Publishing a canvas_page via auto-save API drops all non-default-language translations
[102] Add next larger srcset candidate in canvas:image to prevent browser upscaling
[144] Fix translation related behaviour of auto save
[145] fix: #3550869 Add next larger srcset candidate in canvas:image to prevent browser upscaling
[181] hook_ai_context_scope_values_alter() is not honored in scope value forms
[185] Deprecate multiple property in plugin attribute
[188] Issue #3578821: Deprecate the multiple attribute plugin property