Daily Digest
Daily Digest – 12 May 2026
2026 Capabilities Progress
- Page generation — The Chicago Driesnote demo — which showcases AI-driven page building — is timing out on the shared hosting environment, meaning the public-facing demonstration of this capability is currently unreliable [50]. RAG search within the same demo is also broken and under active repair [49]. These are pre-release demo risks, not product failures, but they could undermine executive and customer confidence in the capability if unresolved before upcoming events. Next milestone: stabilise the hosted demo environment ahead of public event appearances.
- Context management — A proposal was raised to surface optional Context Control Center features directly in the UI, which would make it easier for editors and site builders to discover and adopt brand voice, style, and governance configuration capabilities without needing to read technical documentation [142]. The item is currently unassigned, so progress depends on someone stepping forward to own it. No code was merged today.
- Background agents — Active work is underway to generalise how AI Automators dispatch field-level actions, which underpins the reliability of trigger-based, scheduled AI tasks [2][31][32]. Guardrail support is also being added to Automators, meaning background content generation will soon be subject to the same safety controls as interactive AI use [27][47]. A known bottleneck — only one queue item processed per cron run — remains unresolved and limits throughput for sites running automation at scale [19].
- Design system integration — Canvas saw meaningful progress today. JSON Schema support for content entity references was merged, expanding what editors can wire up to visual components [121]. Work on exposing an HTTP API for page regions advances the programmatic control AI will need to build with design system components [118]. CLI tooling infrastructure was also unified, laying groundwork for more reliable component publishing [129]. Several larger efforts — including global layout management and multi-value content support — remain in draft [117][114].
- Content creation and discovery — The AI CKEditor rich-text assistant now has a clearer path to stability, with functional tests submitted for review [12][34][35] and a system warning added when required editor assets are missing [6][29]. Content suggestions architecture was refactored to improve extensibility and per-entity-type configuration [5][11][14][28]. AI Translate gaps were also addressed: a fix for custom fields being silently skipped is in review [13][144][145], and a missing translator for SEO metatag fields was identified as an open risk [143]. The amazee.ai provider fixed a data integrity issue where deleted content was not removed from the search index, protecting search result quality over time [100][106].
- Advanced governance — Guardrail reliability improved materially today: a long-standing defect where the regex guardrail never actually scanned AI output was fixed [21][42], streaming-aware guardrails that can evaluate content in real-time were merged [20][41], and guardrail support is being extended to AI Automators [27][47]. A risk remains: guardrails still only evaluate the last message in a conversation rather than full chat history, leaving a gap in multi-turn scenarios [7][30]. Comprehensive logging also advanced, with improvements to how AI request and response data is summarised in audit logs and traces [17].
- Intelligent website improvements — No direct progress today. The AI Agents ChatProcessor — which would allow AI agents to operate conversationally within editorial interfaces — remains in review but is not yet merged [109]. The unassigned agent initialisation bug also represents a stability risk for any agent-driven workflow [110].
- Multi-channel campaigns — No direct technical progress today. Marketing infrastructure work continues around event promotion, sales decks, and brand guidelines [74][97], but these are go-to-market activities rather than product capability development. The Hugging Face text classification contribution, if merged, would add a content categorisation capability relevant to multi-channel targeting [107], but it remains under review.
Shipped
- AI Settings Page Crash Fixed — A bug that prevented administrators from loading the AI settings page when a configuration field was empty has been resolved and merged [25][45].
- Content Safety Pattern Matching Now Works — A long-standing defect where the guardrail responsible for scanning AI-generated output against configured patterns was silently doing nothing has been corrected [21][42].
- Real-Time Safety Checks During Streaming Responses — Support for evaluating AI content against safety rules while a response is still being generated was merged, closing a gap where guardrails could only act on fully completed outputs [20][41].
- Graceful AI Failure Handling — A new error event system was merged, allowing sites to detect AI failures and activate fallback behaviours automatically rather than surfacing errors to end users [15][36].
- Missing Asset Warning Added — The system now displays a warning when required built assets are absent, preventing silent failures in the AI-powered rich text editor [6][29].
Ongoing
- Guardrails Support for AI Automators Under Review — A contribution extending content safety guardrails to cover automated content generation tasks is awaiting review before it can be merged [27][47].
- Guardrails Only Check the Last Message in a Conversation — An open safety gap where guardrails evaluate only the most recent message rather than the full conversation history remains unresolved [7][30].
- Demo Environment Times Out During Live Presentations — The hosted Chicago DrupalCon keynote demo fails on long AI requests in the shared environment, posing a risk to upcoming public events and prospect demonstrations [50].
- Automated Content Processing Limited to One Task Per Scheduled Run — A known bottleneck preventing AI Automators from processing more than one queued task per cron execution remains open, limiting throughput for sites running AI at scale [19].
- AI Translate Skipping Custom Fields and SEO Metadata — Two gaps where content is silently excluded from translation, including SEO metadata and custom-named fields, remain unresolved with a proposed fix awaiting review [13][143][144][145].
AI (Artificial Intelligence)
This was a highly productive 24-hour period for the Drupal AI module, with nine changes merged into the codebase and a broad wave of new work opened for review. Activity spanned stability fixes, safety improvements, developer experience, and new capabilities.
Stability and Bug Fixes
Several issues that could disrupt real-world use were resolved. A bug where the AI settings page would crash entirely if a configuration field contained an empty value was fixed and merged, courtesy of Ahmad Khader (Ahmad-Khader). This had been blocking administrators from accessing the settings screen. A long-standing defect where the module's content safety "guardrail" for pattern matching never actually scanned AI-generated output was also corrected -- meaning post-generation safety checks were silently doing nothing until Alphons Jaimon (AJV009) delivered the fix. Incorrect technical declarations that were causing errors when third-party developers built integrations were also flagged by Pieter Frenssen (pfrenssen) and are now under review.
Safety and Guardrails Progress
Significant investment was made in the module's guardrails system, which controls what AI content is allowed through. Support for real-time content evaluation during streaming responses was merged, closing a meaningful gap where safety rules could only apply to fully completed responses. Work is also in review to extend guardrail protection to the AI Automators feature, which handles automated content generation tasks.
New Capabilities
The module now supports multimodal embeddings -- meaning developers can combine text and images when querying embedding models such as Google Gemini. A new error event system was merged, allowing sites to handle AI failures gracefully and implement fallback behaviours without custom patches. Preparation for upcoming releases 1.2.16 and 1.3.5 is underway, with testing and documentation tasks actively tracked.
Developer and Operator Experience
A warning now appears on the system status page when required built assets are missing, preventing silent failures with editing tools like the AI-powered rich text editor. Testing and contributor documentation was also improved, with clearer guidance on building assets before testing and on how to correctly name database update routines.
Open Risks
A known issue where guardrails only check the last message in a conversation rather than the full history remains open, representing a potential safety gap in multi-turn chat scenarios. A performance issue causing slow first-load times on AI configuration pages and a limitation where automated content processing handles only one task per scheduled run also remain unresolved and could affect sites running AI at scale.
How can I help on this project?
Leaders can support progress by ensuring contributors have time and resources to clear the growing review queue, particularly for larger pieces of work like guardrails and automator improvements. Sponsoring dedicated testing capacity ahead of the 1.2.16 and 1.3.5 releases would reduce risk. Prioritising the open performance and safety issues -- by directing attention or funding toward them -- would have direct impact on production readiness.
Drupal AI Initiative
Activity over the past 24 hours was heavily focused on marketing, event preparation, and demo readiness, with Marketing Sprint #2 closing and a wave of new work items opened to carry momentum into the next cycle.
Demo Readiness and Technical Fixes
Two issues surfaced problems with the Chicago DrupalCon keynote demo environment. Kristen Pol (kepol) is working to fix the AI-powered search feature in the demo repository, and a separate issue flagged that the hosted demo environment times out during AI page-building tasks, causing failures for anyone following the public instructions. The demo works locally but not on the shared hosting platform -- a gap that could undermine first impressions for prospective customers and event audiences. A task was also opened to add the demo prompts to the repository so presenters have a consistent, documented starting point.
Events and Sponsorship Pipeline
Work is accelerating around the Enterprise Drupal AI Summit (Rotterdam, 28 September 2026). wouters_frederik opened tasks to create LinkedIn assets for both the call for sessions and the call for sponsors, with the sponsorship deadline set for 31 May 2026. Separately, the team is preparing for The AI Summit London, with Paul Johnson (pdjohnson) opening a task to create a landing page and Dan Stratton (dan-at-zoocha.com) and Will Huggins (ZoochaWill) assigned to produce promotional imagery. A broader event coordination meta-issue is also open, with partners including FreelyGive, 1xINTERNET, and Dropsolid involved.
Planning for a customer-focused webinar featuring DB Schenker moved forward, with Matthew Saunders (jmsaunders) confirming the speaker and opening issues to lock the date and platform and develop the agenda. The session is aimed at business decision-makers rather than technical audiences, which aligns well with the initiative's broader market positioning goals.
Podcast Launch Preparations
A cluster of foundation tasks was opened to launch a new Drupal AI podcast, co-hosted by Matthew Saunders (jmsaunders) and Dominique De Cooman (domidc). Work underway includes finalising the podcast name (with a name agreed between the hosts but still awaiting stakeholder sign-off), defining the sponsorship model, confirming the Drupal Association YouTube channel as the primary host, and establishing a repeatable guest outreach process. The intent is to produce two episodes per quarter, with clips distributed primarily via LinkedIn.
Marketing Infrastructure and Brand
Marketing Sprint #2 formally closed during this period. Looking ahead, Jeremy Chinquist (jjchinquist) proposed splitting marketing work into its own dedicated project space to reduce clutter and make it easier to manage development and organisational issues separately -- a structural improvement that could significantly improve team focus and reporting clarity. A related merge request from jjchinquist to add automated sprint statistics reporting is open for review, which would give the team faster access to progress data each sprint.
Will Huggins (ZoochaWill) and Dan Stratton (dan-at-zoocha.com) are progressing Drupal AI brand guidelines toward sign-off, and work continues on a sales deck to give partner organisations consistent materials for customer conversations.
How can I help on this project?
- Unblock the demo environment issue: The hosted demo timing out is a risk to public-facing events. Escalating this with infrastructure or hosting partners could prevent it undermining upcoming keynotes and summits.
- Advance sponsorship decisions: The Enterprise AI Summit sponsorship deadline is 31 May 2026. Executive endorsement or direct outreach to prospective sponsors could accelerate commitments.
- Champion brand and content sign-off: The sales deck, brand guidelines, and podcast name are all awaiting approval. A leadership decision-making session could unblock several workstreams at once.
amazee.ai Private AI Provider
Activity Summary
The past 24 hours saw active triage and early remediation work across several open issues, with the most notable development being a proposed fix for a data integrity problem. When content is deleted from a Drupal site, the corresponding data stored in the AI search index was not being removed alongside it. This creates a risk of stale or orphaned data accumulating over time, potentially affecting the quality of AI-powered search results. m4olivei has submitted a fix for this data cleanup issue, which is now awaiting review.
Several other issues remain open and active, covering a range of concerns:
- A bug affecting multi-tool AI agents, assigned to Dan Lemon (dan2k3k4), which causes failures in certain chat interactions.
- Improvements to how teams manage credentials securely in development environments, raised by mxr576 (mxr576), covering both a configuration flexibility enhancement and better security guidance.
- Outdated and inaccurate installation documentation, flagged by steven snedker (steven snedker), which may be slowing down adoption.
- A longer-term technical improvement to align the module more closely with Drupal core standards, reducing maintenance risk over time.
Overall, the project is making steady progress on stability and usability, but several issues still need reviewer attention to move forward.
How can I help on this project?
Consider allocating dedicated reviewer time to clear the backlog of open fixes awaiting review. If adoption is a priority, sponsoring a documentation refresh would directly reduce friction for new users. You can also help by ensuring the team has clarity on security requirements for credential handling, which is blocking at least two open items.
Huggingface Provider
Recent Activity
Activity over the past 24 hours has been light but meaningful. A new contribution has been submitted by Ahmad Khader (Ahmad-Khader) in the form of Resolve #3583809 "Add text classification". This proposed addition would extend the module's ability to categorise text automatically using Hugging Face's artificial intelligence models -- a capability that opens the door to use cases such as content tagging, sentiment analysis, and automated routing of information. The submission is currently under review and has not yet been approved or merged.
There were no other issue updates or code commits during this period, suggesting the project is in a relatively quiet phase with focused effort on this single feature contribution.
How can I help on this project?
Leaders can support progress by ensuring a reviewer is available to evaluate the text classification submission promptly, preventing delays in the contribution pipeline. Consider advocating for dedicated development time for contributors, and explore whether there is appetite to prioritise expanding AI capabilities within your organisation's roadmap to help guide the project's direction.
Postgres VDB Provider
Summary
Activity on the Postgres VDB Provider module over the past 24 hours was light but meaningful. A new merge request, Resolve #3576852 "Reduce schema bloat", was opened by Edward Zwart (ezeedub). This work addresses how the module organises and stores data structures in the database, with the goal of keeping things leaner and more efficient over time. Left unaddressed, unnecessary growth in these structures can lead to slower performance and higher infrastructure costs. The proposed changes represent a proactive step toward keeping the module maintainable and cost-effective as usage scales. The merge request is currently open and awaiting review before it can be incorporated into the project.
No issues were updated and no commits were pushed during this period, so overall momentum is steady but modest.
How can I help on this project?
- Ensure a reviewer with relevant expertise is available to assess and approve the open merge request promptly, avoiding unnecessary delays.
- Consider whether dedicated development capacity is allocated to this module to maintain consistent progress.
- Champion timely code reviews as a team norm to keep contributions moving forward.
AI Agents
Summary
Activity on the AI Agents module over the past 24 hours was limited to discussion and review on two open issues, with no new code merged or released during this period.
The most strategically significant item in progress is the Create a ChatProcessor initiative, which is currently under review. This work would allow AI agents to be embedded directly into chatbot interfaces, giving end users a more seamless and configurable conversational experience. Once delivered, organisations will be able to assign a specific agent to a chat channel, bringing the agents capability in line with the broader AI Assistant feature set already available in the platform. The assigned contributor, Ahmad Khalil (ahmad-khalil-imagex), is actively progressing this.
A separate bug, AiAgentEntityWrapper::$aiConfiguration is not initialized, remains open and unassigned. This is a stability issue that could cause unexpected failures in certain agent configurations, and the lack of an owner means it risks lingering without resolution.
How can I help on this project?
Leaders can support progress by ensuring the team has dedicated capacity to pick up the unassigned bug before it affects users. Encouraging a prompt decision on the multi-thread chat design question will also unblock the ChatProcessor feature. If this capability is a strategic priority, signalling that clearly to the team can help accelerate review and release timelines.
Drupal Canvas
The past 24 hours saw a productive mix of feature delivery, quality improvements, and infrastructure strengthening across the Drupal Canvas project.
Features Delivered
A significant capability landed with the merge of feat: #3586613 JSON Schema content-entity-reference, contributed by Christian López Espínola (penyaskito). This expands what content editors can connect to visual components, allowing references to other content entities -- a meaningful step toward richer, more flexible page building.
The command-line tooling also advanced, with Bálint Kléri (balintbrews) completing work to unify the build infrastructure for the CLI tool. This lays groundwork for a fix, also in progress from balintbrews, addressing a bug where the CLI tool was incorrectly overwriting components during publishing.
Code Quality and Reliability
Wim Leers (wimleers) merged improvements that automate the detection of unused code, reducing long-term maintenance risk. Tim Plunkett (tim.plunkett) and Sally Young (justafish) contributed housekeeping fixes that keep the automated testing pipeline healthy and efficient.
Work in Progress
Several substantial efforts remain open, including region management within the Canvas editing experience, translation previews, conflict detection during publishing, and broader multi-value content support. These represent the leading edge of the product's capability roadmap.
How can I help on this project?
Leaders can support progress by ensuring the core contributor team has dedicated time protected from competing priorities. Decisions on which in-progress features to prioritise for release would help the team focus. If external contributors are involved, sponsoring or formally recognising their time accelerates delivery.
Context Control Center (CCC)
Activity on the Context Control Center module was light over the past 24 hours, with no new code merged or committed. The focus during this period was on product direction and user experience planning.
Surfacing Hidden Value for Users
The main conversation centred on a proposal to make users aware of optional add-on capabilities within the tool. Currently, the Context Control Center can do significantly more when paired with certain companion modules, but users have no way of knowing this unless they dig into technical documentation. The open item, CCC optional feature suggestions in UI, raised by Rob Loach (robloach), proposes surfacing these opportunities directly in the interface. This would help site builders and content editors discover features such as comparing different versions of content or loading documents directly into the tool. The business value is clear: users who do not know a feature exists cannot benefit from it, and better discoverability can drive adoption and satisfaction.
No decisions were reached during this period, and the item remains unassigned, meaning momentum depends on someone stepping forward to own it.
How can I help on this project?
Consider assigning a dedicated owner to the CCC optional feature suggestions in UI initiative to prevent it stalling. Advocate internally for user-facing discoverability improvements as a priority, since they directly affect adoption. If resourcing is stretched, this is a strong candidate for a focused sprint investment.
AI translate
Activity over the past 24 hours on the AI Translate module has focused on two related content coverage gaps that limit how completely the tool translates website content.
Expanding what gets translated
Two open issues highlight situations where content is silently skipped during translation, meaning editors may believe a page has been fully translated when it has not. The first concerns Metatag field type is not translated -- missing FieldTextExtractor plugin, which affects SEO metadata such as page titles and descriptions -- fields that are important for search visibility but are currently excluded from the translation process entirely.
The second issue, Custom fields without field_ prefix are not extracted for translation, affects sites that use custom-named content fields. A fix has been proposed by Amaranto del Barrio (alonsomaniaco) in the merge request #3541883: Adapt patch to version 1.3.x, and the issue is assigned to rurik666 (yuri.p) for review. No code has been merged yet, so both gaps remain active risks for any site relying on complete multilingual content coverage.
How can I help on this project?
Leaders can help by ensuring a reviewer is prioritised to assess and approve the proposed fix already in progress. If SEO completeness across languages is a business priority, communicating that urgency to the team can accelerate resolution. Sponsoring additional contributor time to address the unassigned Metatag gap would also directly reduce translation coverage risk.
AI powered Search Block
Summary
Activity on the AI powered Search Block project was quiet over the past 24 hours, with no new issues discussed or code reviews completed. However, Frederik Wouters (frederikwouters) made two direct code improvements during the period. One enhancement allows the system to display richer information in search results when additional data is available, giving end users a more complete picture when they search. The second adds the ability to automatically remove content based on configured settings, which helps keep search results accurate and reduces the need for manual housekeeping. Together, these small but meaningful updates improve both the quality of information surfaced to users and the reliability of the search experience over time.
With no open discussions or pending reviews at this time, the project is in a heads-down development phase. Sustained momentum will depend on continued contributor availability and clear priorities for what to build next.
How can I help on this project?
Leaders can support progress by ensuring the contributing developer has protected time to continue this work. If broader adoption is a goal, commissioning a short user feedback exercise could help prioritise the most valuable next features. Connecting the project with stakeholders who have real search use cases would also help validate the direction.
References
[2] Generalize behaviour of FWA with Automators
[6] Add Warning when Missing Built Assets
[7] Guardrail plugins only evaluate the last message
[11] Save AI Content Suggestion plugin settings inside ai_content_suggestions.settings config object
[12] Add Functional Tests for AI CKEditor
[13] Remove hardcoded field-name patterns from ai_translate's TextExtractor::shouldExtract()
[14] Configure AI content suggestion settings for different entity types
[15] Dispatch AiExceptionEvent and allow subscribers to replace the response (graceful failover)
[17] Improve summarizer for AI request input and output data for logs and spans
[19] Only one AI Automator worker queue item is processed per cron execution
[25] AI settings form fails to load when allowed_hosts is an empty string
[27] Add Guardrails support to AI Automators
[28] Issue #3586436: Refactor AiContentSuggestionsPluginBase
[29] Issue #3586394: Add a warning when built JavaScript assets are missing
[30] Resolve #3579088 "Guardrail plugins only"
[31] Draft: Resolve #3577050 "Generalize behaviour of"
[32] refactor: #3577050: Generalize field widget action dispatch in the base class.
[34] Add AICKeditor tests (Target 1.4.x)
[35] Issue #3477173: Add functional tests for AI CKEditor
[36] Resolve #3585233 "Dispatch aiexceptionevent and"
[41] Issue #3582179: Add StreamableGuardrailInterface with start/stop regex...
[42] Issue #3580690 by ajv009: Implement processOutput() in RegexpGuardrail
[45] Issue #3586397: Fix AI settings form fails to load when allowed_hosts is an empty string
[47] [#3585690] Added Guardrails support to AI Automators.
[49] Fix RAG search on Chicago Driesnote repo install
[50] Chicago Driesnote Drupal Forge Demo Is Timing Out on Long AI Calls
[74] Create sales deck
[97] Drupal AI Brand - Guidelines Review & Sign Off
[100] Deleting an entity does not delete indexed data
[106] Resolve "Deleting an entity does not delete indexed data"
[107] Resolve #3583809 "Add text classification"
[109] Create an ChatProcessor
[110] AiAgentEntityWrapper::$aiConfiguration is not initialized
[114] #3562896 Post multivalue reroll
[118] feat: #3589801 Expose HTTP API for managing Page Regions
[121] feat: #3586613 JSON Schema content-entity-reference
[129] feat(CLI Tool): #3588661 Make CLI builds use shared Vite infrastructure
[142] CCC optional feature suggestions in UI
[143] Metatag field type is not translated — missing FieldTextExtractor plugin
[144] Custom fields without field_ prefix are not extracted for translation
Shipped
- StreamableGuardrailInterface merged into AI module — The new interface registers streaming guardrails via
GuardrailsEventSubscriber, closing a gap where guardrails could not evaluate streamed responses incrementally [41]. - RegexpGuardrail::processOutput() bug fixed — The method previously returned
PassResultunconditionally without running the configured regex pattern against AI output [42][21]. - AiExceptionEvent dispatch added to ProviderProxy — Subscribers can now replace an AI response with an
OutputInterfacefor graceful failover when a provider call throws [36][15]. - AI settings form crash on empty allowed_hosts fixed — A
TypeErrorinHostnameFilter::getAllowedDomains()crashed the settings form when the config value was an empty string rather than an array [45][25]. - Canvas: JSON Schema content-entity-reference prop shape shipped — Adds a
content-entity-referencewell-known prop shape for code components with entity-reference resolution at render time insideJsComponentand a full test suite [121].
Ongoing
- 2.0.x CI broken by accidental HostnameFilter service merge — A cherry-pick introduced a reference to a service that does not exist in the 2.x branch, blocking CI for the AI module [9][33].
- Fix incorrect OperationType parameter type declarations — An open MR from Pieter Frenssen corrects wrong
OperationTypenamespaces caught by PHPStan but still needs a second reviewer before merge [48][24]. - amazee.ai provider: entity deletion does not remove indexed data — An open 244-line MR proposes a fix for orphaned Postgres records when an indexed entity is deleted, but has no reviewer yet [106][100].
- ai_translate: custom fields without field_ prefix skipped during translation — A port of the fix to the 1.3.x branch is open but in needsWork state awaiting review and iteration [145][144].
- Postgres VDB Provider: reduce schema bloat MR awaiting review — A 1,621-line MR targeting schema optimisation in
ai_vdb_provider_postgreshas no reviewer and needs assessment for backward compatibility and hook_update_N coverage [108].
AI (Artificial Intelligence)
A productive 24-hour window saw nine merges land across bugfixes, new APIs, and developer experience improvements.
Merged and Shipped
The most significant API addition is the merge of Issue #3582179: Add StreamableGuardrailInterface with start/stop regex buffering, contributed by Abhisek Mazumdar (abhisekmazumdar). This introduces StreamableGuardrailInterface and registers streaming guardrails via GuardrailsEventSubscriber, closing a long-standing gap where guardrails could not evaluate streamed responses incrementally.
Two guardrail bugs were closed. Issue #3580690: Implement processOutput() in RegexpGuardrail by Alphons Jaimon (AJV009) fixes RegexpGuardrail::processOutput(), which previously returned PassResult unconditionally without running the configured pattern against AI output. Related error-handling work landed with Resolve #3585233: Dispatch AiExceptionEvent by Marcus Johansson (Marcus_Johansson), adding a dispatchable AiExceptionEvent from ProviderProxy::wrapperCall() so subscribers can substitute an OutputInterface for graceful failover.
A critical settings bug was resolved: Issue #3586397: Fix AI settings form fails to load when allowed_hosts is an empty string by Ahmad Khader (Ahmad-Khader) corrects a TypeError in HostnameFilter::getAllowedDomains() that crashed the settings form when the config value was an empty string rather than an array.
Developer experience improvements included Issue #3586394: Add a warning when built JavaScript assets are missing by Joshua Fernandes (joshua1234511), surfacing a status report warning when MDXEditor, JSON field, or AI CKEditor dist directories are absent. Documentation merges covered update hook naming conventions (Avinash jha, avinash.jha) and image-in-docs guidance (debdeep.mukhopadhyay). Artem Dmitriiev (a.dmitriiev) also merged multimodal embedding support into the API Explorer.
Open and In Progress
Several items are RTBC awaiting merge: Undefined array key "#type" warnings break AJAX in AbstractModelFormBase::updateModelForm() has a one-line patch ready. Method getPluginResponse should be in AiContentSuggestionsPluginBase has an open MR from Artem Dmitriiev (a.dmitriiev) refactoring the ai_content_suggestions module. Pieter Frenssen (pfrenssen) opened Fix incorrect parameter type declarations correcting wrong OperationType namespaces caught by PHPStan. On the 2.0.x branch, Fix 2.0.x tests due to HostnameFilter service accidentally merged in is blocking CI after a cherry-pick introduced a reference to a service that does not exist in 2.x.
How can I help on this project?
- Review and test Fix incorrect parameter type declarations -- it is self-reviewed but still needs a second look before merge.
- Pick up Fix 2.0.x tests due to HostnameFilter service -- the broken CI job is identified and the fix is straightforward: remove the
HostnameFilterservice reference from the test. - Review the RTBC patch for Undefined array key "#type" warnings in AbstractModelFormBase::updateModelForm(), which is blocking AJAX on model configuration forms.
Drupal AI Initiative
Activity over the past 24 hours was light on merged code but notable for a cluster of new issues and one open merge request. The most concrete technical contribution is Issue #3586510: Add sprint-stats skill + reports script, opened by Jeremy Chinquist (jjchinquist), which proposes a sprint-stats Claude skill and a companion scripts/run-sprint-stats.sh runner. The skill fetches issues and state-label events from drupalcode.org, then writes per-sprint statistics reports in .md, .html, and .pdf formats using a Drupal.org-themed template. The MR spans 1,304 diff lines and is awaiting review; no commits landed in the reporting window.
On the demo side, Kristen Pol (kepol) opened Fix RAG search on Chicago Driesnote repo install, tracking a broken RAG search setup in the fosterinteractive/c2026 GitHub repo. Separately, Eric Homanchuk (erichomanchuk) filed Chicago Driesnote Drupal Forge Demo Is Timing Out on Long AI Calls, where Canvas AI calls exceed Drupal Forge's 60-second request limit and return a 504; the same flow works locally under DDEV, so the blocker is environment-specific. A third related issue, Update Chicago Driesnote repo to include demo prompts, is open and unassigned.
The marketing workstream generated significant issue volume, including a proposal by Jeremy Chinquist (jjchinquist) and Christoph Breidert (breidert) to split marketing work into a dedicated ai_initiative_marketing project on git.drupalcode.org, citing board noise obscuring development issues. Matthew Saunders (jmsaunders) opened a batch of podcast foundation issues covering naming, sponsorship model, and distribution. Marketing Sprint #2 was closed during the window.
How can I help on this project?
- Review the sprint-stats MR -- check the state-bucket logic in
SKILL.mdand testrun-sprint-stats.shagainst a real milestone. - Investigate the 504 timeout in the Drupal Forge demo issue -- the Forge platform caps requests at 60 seconds; a queued or async dispatch approach may be needed.
- Pick up the unassigned demo prompts issue and add a prompts
.mdfile to thefosterinteractive/c2026repo.
amazee.ai Private AI Provider
Recent Activity
The main movement in the last 24 hours centres on a newly opened merge request from m4olivei addressing Deleting an entity does not delete indexed data. The Resolve "Deleting an entity does not delete indexed data" MR (244 diff lines, branch 3586039-deleting-an-entity) proposes a fix for orphaned records left in Postgres tables when an indexed entity is deleted -- a root cause shared with a related VDB index-clearing bug. No commits landed in the reporting period, so nothing has merged yet.
Several other accepted and needs-review issues remain active but unassigned. These include a longer-term architectural goal to replace direct calls to PostgresPgvectorClient with Drupal core's pgsql database abstraction layer (Switch to using Drupal core pgsql module for database interactions), and a UX improvement to let developers override the auto-generated key name in AmazeeioAiConfigForm::generatePrivateKeyName() for shared-domain environments like ddev.site (Allow users to specify private key name). Dan Lemon (dan2k3k4) remains assigned to the multi-tool agent toolResult/toolUse mismatch bug (Multi-tool agents fail with toolResult/toolUse block mismatch) with no update this cycle.
How can I help on this project?
- Review Resolve "Deleting an entity does not delete indexed data" -- it has 244 diff lines and no reviewer yet.
- Pick up the unassigned Allow users to specify private key name issue and prototype an override mechanism for
generatePrivateKeyName(). - Add a test covering entity deletion cleanup to prevent regressions in the indexed-data removal path.
Huggingface Provider
Recent Activity
Activity over the last 24 hours was limited to a single new merge request. Ahmad Khader (Ahmad-Khader) opened Resolve #3583809 "Add text classification", a 121-line diff that introduces text classification capability to the module. No commits landed and no issues were updated during the reporting period, so the MR is awaiting review and has not yet been merged.
There are no reported blockers at this time, though the text classification work will need review and likely test coverage before it can ship.
How can I help on this project?
- Review Resolve #3583809 "Add text classification" -- check the implementation against existing provider patterns and leave feedback on Ahmad-Khader's diff.
- Write automated tests covering the new text classification handler to help move the MR toward a mergeable state.
Postgres VDB Provider
Activity in the last 24 hours was limited to a single open merge request, with no commits landed or issues updated during the reporting period.
Open Work
Edward Zwart (ezeedub) opened Resolve #3576852 "Reduce schema bloat", a substantial change at 1621 diff lines targeting schema optimisation in the module. The MR is awaiting review and has not yet been merged. No additional context is available from issue comments or commit activity within the reporting window.
How can I help on this project?
The most immediate contribution opportunity is reviewing Resolve #3576852 "Reduce schema bloat". Given its size (1621 diff lines), focus on whether schema changes are backward compatible, whether any hook_update_N implementations are included, and whether the approach could affect existing vector index definitions.
AI Agents
Activity in the AI Agents module over the last 24 hours was limited to issue triage and discussion, with no merge requests or commits landing in the reporting period.
Open Issues
Work continues on Create a ChatProcessor, assigned to Ahmad Khalil (ahmad-khalil-imagex). The goal is to introduce a ChatProcessor plugin for agents, providing parity with the AI Assistant layer's existing chat functionality. The issue is currently in Needs Review state, suggesting a patch or MR may be forthcoming, though nothing merged in this window. Outstanding design questions around multi-thread support and per-agent chatbot assignment remain unresolved.
A separate bug, AiAgentEntityWrapper::$aiConfiguration is not initialized, remains unassigned. The issue identifies that AiAgentEntityWrapper::$aiConfiguration is declared without a default value, which can cause errors for agents sourced from the temp store. This was originally reported by joaopauloc.dev and is noted as related to MR !256, but no fix has been picked up yet.
How can I help on this project?
- Review or test the in-progress work on Create a ChatProcessor, which is flagged as Needs Review.
- Pick up the unassigned AiAgentEntityWrapper::$aiConfiguration is not initialized bug and submit a fix initializing the property to an empty array.
Drupal Canvas
Five merges landed in the reporting period, spanning new features, tooling, and housekeeping.
Merged and Shipped
The most significant merge was feat: #3586613 JSON Schema content-entity-reference by Christian López Espínola (penyaskito), which adds a content-entity-reference well-known prop shape for code components. The work includes entity-reference prop resolution at render time inside JsComponent, injection of entity-reference constraints into SDC definitions, and a broad test suite covering prop storage, validation, and toSdcDefinition idempotency.
Bálint Kléri (balintbrews) merged feat(CLI Tool): #3588661 Make CLI builds use shared Vite infrastructure, a substantial 8,600-line diff that unifies the CLI build pipeline with the shared Vite setup. This unblocks fix(CLI Tool): #3580749 Push command overrides all components when using named component style, which is now open and awaiting review.
Wim Leers (wimleers) merged Resolve #3589128 "Rnddead code detector", integrating shipmonk-rnd/dead-code-detector into PHPStan automation to catch unreachable code. Tim Plunkett (tim.plunkett) merged a chore: #3589567 Fix deprecated PHPCS syntax cleanup in phpcs.xml, and Sally Young (justafish) merged Issue #3529128: Set default job image and mark which jobs can be interrupted, tightening CI configuration.
Open Work of Note
Ben Mullins (bnjmnm) has opened Resolve #3589165 "followup to 3582883 - replace with targeted fix" to revert a broad datetime fix in favour of a narrower targeted approach. Several other MRs from bnjmnm are queued around invalid prop commits, zero-value display, and post-multivalue cleanup. wotnak opened feat: #3589801 Expose HTTP API for managing Page Regions, extracted from the larger global-regions draft MR.
How can I help on this project?
Review Resolve #3589165 "followup to 3582883 - replace with targeted fix" to validate the targeted datetime fix. Test feat: #3589801 Expose HTTP API for managing Page Regions against the list, get, post, and patch endpoints. Add testing instructions to #3589178 zero is a valid value to display, which currently has none.
Context Control Center (CCC)
Activity Summary
Activity in the Context Control Center (ai_context) module was light over the past 24 hours, with no merge requests merged or commits pushed. The sole update was a new issue opened by Rob Loach (robloach): CCC optional feature suggestions in UI. The proposal calls for surfacing optional integrations to site builders and content editors directly in the UI, rather than leaving them discoverable only via composer.json. The integrations in question include drupal/diff for revision comparison on context items, drupal/document_loader for loading document contents via MDXEditor, and drupal/dynamic_entity_reference for per-item target entity scoping. No one is assigned to this issue yet, and no implementation discussion has begun.
There are no active blockers reported and no API changes landed in this period.
How can I help on this project?
The CCC optional feature suggestions in UI issue is unassigned and needs a technical approach agreed upon. You could propose a concrete implementation strategy in the comments -- for example, using a hook or a status report block to detect whether optional modules are installed and render contextual prompts in the admin UI.
AI translate
Activity over the past 24 hours centred on two open bugs related to field extraction gaps in the FieldTextExtractor plugin system.
Open Issues and MR Activity
Amaranto del Barrio (alonsomaniaco) opened #3541883: Adapt patch to version 1.3.x, porting a fix for Custom fields without field_ prefix are not extracted for translation to the 1.3.x branch. The underlying bug, assigned to rurik666 (yuri.p), is in a needsWork state, meaning the MR still requires review and iteration before it can be merged. No commits landed in the reporting period.
A separate issue, Metatag field type is not translated -- missing FieldTextExtractor plugin, remains unassigned and open. It identifies that fields of type metatag (from the Metatag module) are silently skipped during translation due to the absence of a corresponding FieldTextExtractor plugin.
How can I help on this project?
- Review #3541883: Adapt patch to version 1.3.x and provide feedback to move it out of needsWork state.
- Pick up the unassigned Metatag field type issue and implement a
FieldTextExtractorplugin for themetatagfield type.
AI powered Search Block
Activity over the last 24 hours was limited to two direct commits pushed by Frederik Wouters (frederikwouters), with no merge requests opened or issues updated in the period.
Recent Commits
The two commits touch administrative and data management behaviour. delete based on setting introduces conditional deletion logic driven by a module configuration setting, suggesting the overview or management UI now respects a user-defined option when removing records. The companion commit show more data in overview if it exists improves the overview display by conditionally rendering additional fields when the underlying data is present, avoiding empty output for sparse entries. Both commits arrive without an accompanying issue or MR thread, so review context is limited to the commit messages themselves. No API changes, test coverage additions, or blocking issues were reported during this period.
How can I help on this project?
- Review the two recent commits and check whether the deletion logic introduced in delete based on setting has test coverage, and consider writing a unit or functional test for it.
- Check the project issue queue for any unresolved bugs or feature requests that could be triaged or picked up.
References
[9] Fix 2.0.x tests due to HostnameFilter service accidentally merged in
[15] Dispatch AiExceptionEvent and allow subscribers to replace the response (graceful failover)
[24] Fix type declaration for OperationType input parameters
[25] AI settings form fails to load when allowed_hosts is an empty string
[33] Remove hostname filter service reference in code.
[36] Resolve #3585233 "Dispatch aiexceptionevent and"
[41] Issue #3582179: Add StreamableGuardrailInterface with start/stop regex...
[42] Issue #3580690 by ajv009: Implement processOutput() in RegexpGuardrail
[45] Issue #3586397: Fix AI settings form fails to load when allowed_hosts is an empty string
[48] Fix incorrect parameter type declarations.
[100] Deleting an entity does not delete indexed data
[106] Resolve "Deleting an entity does not delete indexed data"
[108] Resolve #3576852 "Reduce schema bloat"
[121] feat: #3586613 JSON Schema content-entity-reference
[144] Custom fields without field_ prefix are not extracted for translation