Daily Digest

Daily Digest – 1 July 2026

2026 Capabilities Progress

  1. Page generation — Progress on Canvas AI page builder testing continues [245], and architectural work on component context and translation support will improve AI's ability to generate valid, translatable pages from design system components [229][233][249]. Next milestone is completing conflict detection workflows to enable safe AI-assisted page editing.
  2. Context management — Significant progress on Context Control Center with multiple accessibility, form, and cacheability improvements in progress or in review [274][279][280][281][283][285][286][287][288], plus work enabling subcontext scope inheritance [276][284]. The module is approaching release candidate status.
  3. Background agents — Work continues on agent reliability with progress on tool execution ordering constraints [218][223], error handling improvements [220][225], and agent state resume capability [13]. Risk: token handling and UI error conditions remain open [221].
  4. Design system integration — Canvas work on component metadata, prop validation, and translatability directly supports AI building with design system components [229][231][233][234][237][249][257]. Work on AI-driven CSS variable modification remains in planning [95][96][97].
  5. Content creation and discovery — AI reranking processor for Search API is in active development [4][194], batch embeddings are being formalized across multiple providers to improve indexing performance [7][196][207][216][217][290], and nested keyword query support was added [289][291]. CKEditor improvements address language handling and UI issues [2][3][108][177][181].
  6. Advanced governance — Guardrail improvements are underway to evaluate full conversation history rather than only the last message [5][195], with semantic topic matching and input length validation being enhanced [17][187][190]. Logging and audit capabilities saw improvements with export methods and enhanced metadata capture [29][109][111]. Risk: batch approval and branch-based versioning features show no direct progress today.
  7. Intelligent website improvements — No direct progress today on learning from performance data or proposing concrete site improvements based on analytics.
  8. Multi-channel campaigns — No direct progress today on campaign-based content creation spanning websites, social media, email, and automation platforms.

Shipped

  1. AI CKEditor functional tests added — Test coverage for the text editor integration was completed and merged [179][203].
  2. Provider documentation tool automated — A script to generate the provider compatibility matrix from GitLab was completed, reducing manual maintenance effort [192][204].
  3. Image classification type hints corrected — A minor fix to method return types was merged [191][205].
  4. Context Control Center documentation updated — Installation paths in project documentation were corrected [275].
  5. Canvas CI restored — Continuous integration was unblocked by resolving a dependency issue [244][269].

Ongoing

  1. Chatbot modal interaction fix under review — A fix to prevent the chatbot from closing when adding media or other modals in CKEditor is awaiting merge [1][193].
  2. Search API reranking processor in development — Work is underway to extend AI reranking capabilities to any Search API backend [4][194].
  3. Batch embeddings being finalized — Support for processing multiple content items in a single embedding operation is under review to improve indexing performance [7][196][207][216][217][290].
  4. Guardrail improvements in progress — Changes to allow guardrails to evaluate full conversation history and add semantic topic matching are under development [5][17][190][195].
  5. Canvas conflict detection and translation work active — Multiple features for comparing and resolving editing conflicts, plus ensuring component fields are marked translatable, are in review [233][238][240][249][255][258][259][262][263][264][273].

AI (Artificial Intelligence)

The AI module saw targeted progress across testing, developer experience, and quality-of-life improvements over the past 24 hours. Work merged into the main branch includes functional test coverage for CKEditor integration, a new automated provider discovery tool for documentation maintenance, and a minor fix to type hints in the image classification system.

In active development, a merge request to resolve chatbot behaviour after modal dialogs (such as adding media in CKEditor) was opened, which should improve editing reliability. A reranking processor for Search API is in progress, extending AI Core's existing rerank operation to work with any Search API backend. Batch embedding support is being hardened and formalised as a first-class operation type to improve indexing performance and reduce redundant API calls. Guardrail improvements are also underway: work is ongoing to allow guardrails to inspect the full conversation history rather than only the last message, and to introduce semantic topic matching for the restrict-to-topic guardrail.

Issue triage surfaced user-facing bugs including chatbot rendering problems in Gin dark mode, validation errors when configuring automators on paragraph-enabled node forms, and an issue where forced tool-argument defaults may not be injected correctly. Several open issues relate to edge-case behaviour: multiple chatbots on a single page sharing message history unintentionally, accessibility of provider features not yet documented for non-technical users, and guardrail or automator behaviour when dealing with empty fields or dynamic content types.

How can I help on this project?

  • Prioritise UX triage resources: multiple issues describe usability problems in Gin dark mode, chatbot placement, and paragraph-automator field selection. Dedicated UX review and prioritisation will clarify which fixes should be addressed before the next stable release.
  • Review and approve the reranking and batch embeddings architecture decisions so those in-flight merge requests can be finalised and shipped.

Contributors: Abhisek Mazumdar (abhisekmazumdar), Ahmad Khalil (ahmad-khalil-imagex), Alphons Jaimon (AJV009), Anjali Prasannan (AnjaliPrasannan), Jan Kellermann (werk21), Joshua Fernandes (joshua1234511), Marcus Johansson (Marcus_Johansson) [1], Petar Bašić (petar_basic), Prabhavathi Vanipenta (prabha1997) [1], Ronald te Brake (ronaldtebrake) [1], Shubham Goel (shubhamgoel), velmir_taky (root_emarketing)


AI Integration - ECA

A new task has been opened to simplify how authors configure structured outputs when building chat-based workflows. Currently, anyone defining a schema for AI-generated responses must write raw JSON by hand, which is error-prone and makes saved configurations difficult to review. The Simplify structured output configuration in the Chat action task proposes replacing this plain-text field with a dedicated schema editor that validates input and improves usability. This work is part of the project's roadmap toward a stable 1.0.0 release and will make it easier for non-developers to create reliable AI-powered automations.

No code changes were merged or committed during this period. The task remains open and unassigned.

How can I help on this project?

  • Assign development capacity to the open structured-output task to maintain momentum toward the 1.0.0 milestone.
  • Clarify priority across the roadmap backlog so contributors know which usability improvements should be completed first.

OpenAI Provider

The OpenAI Provider module saw development activity focused on expanding its capability to handle batch embeddings. A merge request for batch embeddings support was opened, representing progress toward more efficient processing of multiple embedding requests in a single operation. This enhancement will enable users to process larger volumes of content more economically and with better performance, reducing the number of individual API calls required for embedding generation tasks.

The module remains in active development with work underway to expand its feature set. This batch processing capability represents a meaningful step toward production readiness for organizations with higher-volume content processing requirements.

How can I help on this project?

  • Prioritize review and testing resources for the batch embeddings functionality to accelerate its delivery to users with high-volume use cases.
  • Consider engaging stakeholders who would benefit from batch processing to provide feedback on the implementation before it's finalized.

Contributors: Paul Sheldrake (paulsheldrake)


Anthropic Provider

The Anthropic Provider module saw active development focused on compatibility and stability improvements. A dependency was updated to incorporate an upstream transport fix that better surfaces rate-limit and error information during streaming operations. This change improves the reliability of real-time interactions with the Anthropic platform.

Work is underway to address a compatibility issue affecting multi-agent AI workflows, such as those in Drupal Canvas AI. The module currently forwards conversation messages without modification, but Anthropic requires the last message in a conversation to come from a user. When agent-to-agent handoffs leave a trailing system or assistant message, the integration breaks with a generic error. Two approaches to appending a minimal user message are being evaluated.

Separately, the module is being prepared for forward compatibility with Drupal 12 and cleaning up references to an upstream module that was merged into core last year. These changes ensure the module remains current with the broader Drupal ecosystem.

How can I help on this project?

  • Review and approve the two open approaches to the conversation-ending issue so the team can settle on one implementation and unblock Canvas AI workflows.
  • Allocate testing resources to validate Drupal 12 compatibility ahead of its release cycle.

Contributors: Carlos Ospina (camoa), Paul Smith (MrDaleSmith), project update bot (Project-Update-Bot), Rajab Natshah (RajabNatshah)


Gemini Provider

The Gemini Provider module is progressing work to enable batch processing of embeddings, which allows multiple pieces of content to be analyzed for semantic meaning in a single operation rather than one at a time. This capability is supported by the underlying Gemini models and will improve efficiency when processing large volumes of content. A merge request for batch embeddings support was updated during the period following decisions on implementation approach. The related issue is now under review.

This work builds on earlier efforts to standardize how the module handles content analysis requests, and represents incremental progress toward making the provider more performant at scale.

How can I help on this project?

  • Ensure technical reviewers have capacity to evaluate the batch embeddings work currently awaiting review.
  • If batch processing is strategically important, clarify priority and timeline expectations with the team to guide sequencing decisions.

Contributors: Artem Dmitriiev (a.dmitriiev)


Milvus VDB Provider

The Milvus VDB Provider project saw development activity focused on improving performance when handling large volumes of data. A new merge request was opened to add support for batching on indexing operations. This work will enable the system to process multiple items at once during indexing, rather than handling them individually, which should reduce processing time and improve efficiency when working with substantial data sets.

This enhancement is particularly valuable for organizations managing growing amounts of content or data, as it will help maintain system responsiveness as usage scales. The change is currently under review and has not yet been merged into the codebase.

How can I help on this project?

  • Ensure the team has access to adequate testing environments or resources to validate batching performance with realistic data volumes before the feature is finalized.
  • Consider prioritizing review capacity to move the batching work toward completion if improved indexing performance aligns with organizational goals.

Contributors: Artem Dmitriiev (a.dmitriiev)


AI Agents

Activity this period centered on improving the reliability and usability of agent-based automation. Work continued on features that give administrators more control over how AI agents behave, and on fixing issues that disrupt the user experience when things go wrong.

Progress was made on Make it possible to restrict the order of tools during agent executions, which addresses cases where agents execute actions in illogical sequences. The related work allows administrators to configure dependencies between tools—for example, ensuring certain data retrieval happens before content creation. This should reduce the need for complex prompt engineering and make agent behavior more predictable.

Two open issues received updates around error handling and system integration. Work on Exceptions in tool execute break the UI for the user aims to prevent silent failures in the agent interface when configuration errors occur. A new issue was reported regarding Array to string conversion in Token::doReplace(), which causes warnings during agent runs. Additionally, AI Agents admin menu does not follow AI 1.4.x menu categorization is ready for final review to align the module's navigation with the broader AI platform structure.

How can I help on this project?

  • Prioritize review and merge decisions for ready work, particularly the menu categorization issue marked as ready to be committed.
  • Assess whether the token conversion warning issue requires dedicated development resources or represents a broader integration concern with the platform.

Contributors: Alin Ameiroaie (aalin), Joshua Fernandes (joshua1234511), Jürgen Haas (jurgenhaas)


Tool API

Two compatibility issues affecting the AI connector component were identified during the reporting period. The first concerns how module dependencies are tracked when AI agents use tools through the connector — currently, dependencies from the underlying tool modules are not being properly maintained in the system. The second issue involves handling tools that return multiple results (such as lists of content items), which currently causes system errors. A proposed fix for the multiple-results issue has been submitted and is under review.

These issues affect users who are integrating AI capabilities with the Tool API, specifically when agents need to work with content operations or when module dependency tracking is important for system integrity.

How can I help on this project?

  • Prioritize review resources to evaluate and advance the proposed fix for handling multiple-entity results.
  • Determine whether the module dependency tracking issue requires architectural guidance or can proceed with a standard fix.
Contributors: Ajit Shinde (ajits)

Drupal Canvas

Progress

A dependency issue that broke continuous integration has been resolved, restoring automated testing and code quality checks. Separately, two security hardening improvements were committed to make image upload endpoints in both the AI chat interface and the internal API more robust.

Translation and Multilingual Support

Work is underway to ensure multi-line text fields in components are correctly marked as translatable, addressing a gap that affects content editors working in multiple languages. A related fix is in progress to allow Pattern configuration entities to work correctly on multilingual sites, where they currently trigger errors. Additionally, a proposal has been opened to improve how component schemas track which fields can be translated across component versions, ensuring that older content remains valid when component definitions evolve.

Conflict Detection and Review Workflows

Significant development continues on conflict detection and resolution features. These capabilities will help users identify when unpublished changes conflict with updates made outside their editing session, compare versions visually or as text, and choose which version to keep before publishing. Access control logic for auto-save publishing has been refined to ensure permission checks happen earlier in the request lifecycle.

Component Usability and Validation

A fix is being prepared for an issue where boolean component properties appear to toggle on unexpectedly when other fields are changed. A separate issue addresses a performance problem where very large text fields trigger regular expression errors; the solution involves replacing a placeholder validation pattern with a more efficient approach. Work is also progressing to improve how the content reference picker presents image field options to developers.

How can I help on this project?

  • Prioritize review and sign-off on the conflict resolution workflow, which spans multiple interdependent changes and will unlock safer collaborative editing.
  • Ensure dedicated review capacity for translation-related fixes, which are marked as critical blockers for multilingual deployments.

Contributors: **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Ben Mullins (bnjmnm), Christian Lopez Espinola [2], Christian López Espínola (penyaskito), Feliksas Mazeikis (f.mazeikis), Matt Glaman (mglaman), Narendra Singh Rathore (NarendraR), Prabhavathi Vanipenta (prabha1997), Ravi Maniyar (ravi.maniyar.123), Wim Leers (wimleers) [1]


Context Control Center (CCC)

Progress this period focused on improving the user experience and accessibility of the module's administrative interfaces as work continues toward a release candidate. Several areas of cleanup are now underway to ensure the module is easier to use and more accessible to all users.

One piece of work was completed: Update project page to change to the correct paths in the Installation and Testing Steps section was closed, correcting documentation that previously pointed users to incorrect administrative paths.

Active development is addressing several usability areas. Work is progressing on making tooltip content, truncated text, and icon-only elements accessible to screen readers through Clean up CCC tooltip, truncation, and icon-only content. Another effort is improving how external links are presented and ensuring interactive elements are properly accessible through Clean up CCC accessible interactive links and external links. Improvements to form accessibility and table interfaces are underway via Clean up CCC form and table accessibility cleanup. Behind-the-scenes work is ensuring content caching and permissions work correctly through Clean up CCC cacheability and access metadata.

Additional work is exploring how the module might integrate with the new Annotations module, which has complementary functionality.

How can I help on this project?

  • Prioritize manual testing resources for the scope inheritance feature, which has code ready but requires validation before release.
  • Support evaluation of the Annotations module integration to determine whether partnership or coordination would benefit both projects strategically.

Contributors: Joshua Fernandes (joshua1234511), Juan Correa (jucs7), Kristen Pol (kepol), Pravesh Poonia (Pravesh_Poonia)



Pinecone VDB Provider

Development work continued on this module, which enables Drupal sites to connect with Pinecone vector database services for AI-powered search and content discovery capabilities.

Two merge requests were opened to add support for running Pinecone locally. This capability would allow development teams to test and build features without requiring connection to external cloud services, reducing dependencies and enabling faster iteration during feature development.

A feature request was also filed to add batching support for indexing operations, following similar improvements made in related modules. Batching would improve performance when processing large volumes of content by grouping multiple operations together rather than handling them one at a time.

No commits were finalized during this period. The module remains in active development with work underway but not yet integrated into the codebase.

How can I help on this project?

  • Ensure testing resources are available to validate the local Pinecone support once the merge requests are ready for review.
  • Clarify whether batching support should be prioritized alongside the local development work or sequenced separately.

Contributors: Scott Euser (scotteuser)


References

[1] Chatbot closes itself when adding a modal (ai, Issue)

[2] ai_ckeditor: Add option to show or hide the "AI Writer" status information (ai, Issue)

[3] AI CKEditor Summarize generates summaries in a different language than the selected text (ai, Issue)

[4] Add an AI reranking processor for Search API (owned by the AI module) (ai, Issue)

[5] Guardrail plugins only evaluate the last message (ai, Issue)

[7] Batch embeddings for improved indexing performance (ai, Issue)

[13] AI agent runner resume state (ai, Issue)

[17] Add regression test coverage for RestrictToTopic topic matching (ai, Issue)

[29] Provide method to export log items from the AI Logging module (ai, Issue)

[95] Expose design system css variables in a database field and allow it to override the variables in the file. (ai, Issue)

[96] AI Agents can change design system css variables from a prompt or image. (ai, Issue)

[97] [META] AI Design System - Style Changes / Migration (ai, Issue)

[108] AI CKEditor: configure prompts per filter_format (ai, Issue)

[109] Capture node/entity information on AI Logs (ai, Issue)

[111] Capture user data on AI logs (ai, Issue)

[177] Uninstalling ai_ckeditor leaves stale toolbar items in editor.editor.* configuration (ai, Issue)

[179] Add Functional Tests for AI CKEditor (ai, Issue)

[181] Tone of voice CKEditor Plugin does not use the translated version of the linked taxonomy (ai, Issue)

[187] InputLengthLimit guardrail does not consistently scan user messages (ai, Issue)

[190] RestrictToTopic guardrail: add semantic topic matching mode (ai, Issue)

[191] ImageClassificationItem returns string from getConfidenceScorePercentage and uses uppercase NULL in hints (ai, Issue)

[192] Add a deterministic script to auto-generate the providers/operation-types matrix from GitLab (ai, Issue)

[193] Issue #3499451: Fixed chatbot not reopening after CKEditor/media modal closes. (ai, MR)

[194] Issue #3586543: Add AI reranking processor for Search API. (ai, MR)

[195] Resolve #3579088 "Guardrail plugins only" (ai, MR)

[196] Issue #3568648: Batch embeddings as a first-class operation type (follow-up to !1704) (ai, MR)

[203] Issue #3477173: Add functional tests for AI CKEditor (ai, MR)

[204] Resolve "Add a deterministic script to auto-generate the providers/operation-types matrix from GitLab" (ai, MR)

[205] Resolve "ImageClassificationItem returns string from getConfidenceScorePercentage and uses uppercase NULL in hints" (ai, MR)

[207] add support for batch embeddings (ai_provider_openai, MR)

[216] Support batch embeddings (gemini_provider, MR)

[217] add support for batching on indexing operations (ai_vdb_provider_milvus, MR)

[218] Make it possible to restrict the order of tools during agent executions (ai_agents, Issue)

[220] Exceptions in tool execute break the UI for the user (ai_agents, Issue)

[221] Array to string conversion in Token::doReplace() when a dynamical token value is an array (applyTokens) (ai_agents, Issue)

[223] Issue #3560681: Add per-tool execution ordering constraints for agent loops. (ai_agents, MR)

[225] Issue #3537123 by jurgenhaas: Exceptions in tool execute break the UI for the user (ai_agents, MR)

[229] Canvas AI: Component context required props missing required flag (canvas, Issue)

[231] Inefficient RegexConstraint on StringLong fields causes "JIT stack limit reached" (canvas, Issue)

[233] Canvas should mark multi-line string props on SDCs and code components as translatable (canvas, Issue)

[234] Add Code Component prop type for multiline plain text (canvas, Issue)

[237] SDCs with `maxLength` are mapped to `string`, unclear whether that supports e.g. a limit of `100000` (canvas, Issue)

[238] WSOD AssertionError: assert(!$data instanceof ComponentInputsMapping) in assert() when requesting tmgmt translation job for some component trees (canvas, Issue)

[240] StagedLanguageConfigOverride rejects Pattern config entities on multilingual sites (canvas, Issue)

[244] Unbreak CI due to bad upstream release in PHPStan or `shipmonk/dead-code-detector` (canvas, Issue)

[245] Canvas AI: Create tests for Canvas AI Page builder Agent and Canvas AI Template Builder Agent (canvas, Issue)

[249] Resolve "Canvas should mark multi-line string props on SDCs and code components as translatable" (canvas, MR)

[255] Issue #3575644: Inefficient RegexConstraint on StringLong fields causes "JIT stack limit reached" (canvas, MR)

[257] Fix required prop flag dropped in processSdc() and missing in processCodeComponents(). (canvas, MR)

[258] feat(Conflict detection): #3587526 "Detect conflicts during publishing of changes to Page entity" (canvas, MR)

[259] feat(Conflict detection): #3591601 "Conflict resolution via API call and layout endpoint support for published entities" (canvas, MR)

[262] 3591734: WSOD AssertionError: assert(!$data instanceof ComponentInputsMapping) in assert() when requesting tmgmt translation job (canvas, MR)

[263] Draft: feat(Conflict detection): #3591668 "Text-based Page entity representation via Canvas API" (canvas, MR)

[264] feat(conflict): Add conflict resolution UI with viewport selection and route integration (canvas, MR)

[269] Resolve "Unbreak CI due to bad upstream release in PHPStan or `shipmonk/dead-code-detector`" (canvas, MR)

[273] #3591738 add translation data to code component provider (canvas, MR)

[274] Clean up CCC form and table accessibility cleanup (ai_context, Issue)

[275] Update project page to change to the correct paths in the Installation and Testing Steps section (ai_context, Issue)

[276] Allow subcontext scope to override parent scope (ai_context, Issue)

[279] Clean up CCC tooltip, truncation, and icon-only content (ai_context, Issue)

[280] Clean up CCC cacheability and access metadata (ai_context, Issue)

[281] Clean up CCC accessible interactive links and external links (ai_context, Issue)

[283] Issue #3586304: Clean up CCC form and table accessibility cleanup (ai_context, MR)

[284] Issue #3586218: Allow subcontext scope to override parent scope. (ai_context, MR)

[285] Issue #3586301: Clean up CCC accessible interactive links and external links. (ai_context, MR)

[286] Issue #3586305: Fix context prefix default alignment and stale getManageUrl docs. (ai_context, MR)

[287] Issue #3586302: Exposed tooltip/truncated content and icon meaning to assistive tech. (ai_context, MR)

[288] Issue #3586300: Updated CCC cacheability and access metadata. (ai_context, MR)

[289] Support nested keyword queries (ai_search, Issue)

[290] Resolve "Batch embeddings for improved indexing performance" (ai_search, MR)

[291] Support keyword discovery in nested conditions. (ai_search, MR)


Period: 1 July 2026 to 2 July 2026  |  Generated: 2 July 2026 05:00 GMT

To view the full AI prompts used to generate this digest check this file: 24h_2026-07-01_prompts.txt

Looking for older digests? Browse all digests here.