Daily Digest
Daily Digest – 4 August 2026
2026 Capabilities Progress
- Page generation — Canvas began work to allow the component agent to run in non-looped mode driven by the browser [58][73], which will support interactive page assembly workflows. The module advanced work to support entity types beyond nodes [59][71][72], broadening the scope of content that can be generated from AI prompts.
- Context management — The Context Control Center began work to harden access controls and trust model documentation [93][115], improved conditional context behavior when AI decisions are disabled [105][121], and began work to clarify scope eligibility and limits in the UI [103]. Token budget management advanced with work to persist token counts and display budget usage [96], and work began on a priority ranking field to influence context selection [110].
- Background agents — Work began on a setup-guardrails agent skill that would allow agents to configure site guardrails autonomously [11], and the Scheduler extension was added to the CCC Extensions page to support time-based context publishing [101][119]. Progress on agent streaming capabilities [45] and status stream exposure [36] continued but remains incomplete.
- Design system integration — Canvas enabled pattern editing after creation [64][84], removed the Lupus CE API dependency in favor of a dedicated Canvas Headless endpoint [57][76], and advanced work to allow Canvas on any entity type with configurable displays [59][71][72]. The auto-save system was strengthened to generate stable hashes for change detection [65][88].
- Content creation and discovery — A reranking bug affecting chunk text extraction was identified and assigned [14], and a progressive indexing issue that can drop tail chunks was updated [124]. Translation capabilities advanced with work on fixes for media entity translation errors [125][127][129] and work on support for auto-translating referenced taxonomy terms [126][128], plus LiteLLM provider translation support was merged [131].
- Advanced governance — Canvas resolved a critical configuration import issue that prevented component version updates from deploying correctly [63][83], unblocking deployment workflows. Agent serialization was fixed to handle images in chat history [43][53], and work continued on conditional subcontext governance when AI decisions are disabled [105][121].
- Intelligent website improvements — No direct progress today.
- Multi-channel campaigns — Canvas advanced headless content delivery by implementing a dedicated API endpoint [57][76] and began work on headless previews for content templates [70], which supports rendering content across multiple presentation channels from a single source.
Shipped
- BigPipe chat rendering issue resolved in amazee.ai provider — The amazee.ai provider issue preventing chat under Fiber-based rendering has been closed [35].
- Agent session restoration no longer crashes when images are present — AI Agents can now reliably save and restore conversations containing file attachments, fixing a stability issue that prevented production use [43][53].
- Canvas patterns can now be edited after creation — A merged fix allows editing stored patterns, addressing a workflow limitation [64][84].
- Canvas configuration synchronization unblocked — A merged fix addresses drush config:import failures when component versions differ between environments [63][83].
- LiteLLM provider adds translation support and improved reliability — Merged changes introduce a translateText method and fallback logic for model retrieval [130][131].
Ongoing
- Chat Fundamentals architectural proposal awaiting approval — A twelve-issue plan to adopt Model Context Protocol shapes for rich structured chat remains postponed pending maintainer decision, which will determine the 1.6.x roadmap [1][2].
- Context Control Center preparing for beta4 release — Work continues on access control hardening, token budget visibility, demo content preparation, and user interface clarifications ahead of the next release [93][94][96][102][103].
- Canvas support for entity types beyond nodes in development — Active work underway to enable Canvas on taxonomy terms and other content entity types with configurable displays [59][71][72].
- Media translation batch failures under investigation — Multiple fixes proposed for an error that prevents editors from translating media entities, blocking multilingual publishing workflows [125][127][129].
- Anthropic provider gaining token counting and citation features — Third phase of SDK migration adds opt-in capabilities for usage tracking, source citation, and conversation management [34].
AI (Artificial Intelligence)
The module received a major architectural proposal this period. A coordinated set of twelve issues was filed, collectively called the "Chat Fundamentals plan," proposing to adopt Model Context Protocol shapes as the canonical format for rich structured chat. The proposal would introduce content blocks, citations, progress indicators, suggested replies, and forms-within-chat capabilities. The entire set is currently in postponed state, awaiting formal maintainer approval via the approval issue. Once approved, this work would target a new 1.6.x branch, not the current 1.5.x release line.
Active development continued on existing features. Work advanced on a setup-guardrails agent skill to let agents configure site guardrails without manual UI work. The request tag registry feature received a draft implementation allowing modules to declare which AI request tags they emit. A fix for the chatbot closing when adding media remained in review. Several bug fixes progressed: a correction to prevent rendering empty configuration widgets reached ready-to-be-committed status, and an issue affecting chunk text extraction during reranking was identified and assigned.
Two compatibility issues were reported: the DeepChat block no longer works under BigPipe after upgrading to Drupal 11.4, and streaming content generation fails with Gemini 2.x models, producing 400 errors.
How can I help on this project?
Review and decide on the Chat Fundamentals proposal awaiting approval — this twelve-issue architectural plan will shape the roadmap for 1.6.x. Ensure the team has bandwidth to address the newly reported Drupal 11.4 and Gemini 2.x compatibility issues, as these affect current production usage.
Contributors: Abhinav Jha (ajabhinavjha30), Abhishek Dhariwal (adaptative), Bharat Kelotra (bharatkelotra), Joshua Fernandes (joshua1234511), Marcus Johansson (Marcus_Johansson), Ricardo Castañeda (cadence96), Rob Loach (robloach), Rodel Duterte (rduterte), Shivam Sen (shivamsen_12579)
Drupal AI Initiative
Activity this period was limited to project coordination. A quality assurance meeting from February 2026 was closed, reflecting completion of historical administrative tasks. No feature development, bug fixes, or code integration occurred during this 24-hour window.
The initiative appears to be in a quiet phase with no active development or testing work visible in this reporting period.
How can I help on this project?
- Assess whether the project has sufficient allocated resources to maintain development momentum
- Clarify strategic priority and timeline expectations with the team to ensure alignment with organizational goals
OpenAI Provider
A new capability was opened for review that would allow the OpenAI provider to be configured automatically from the command line. The setup-provider agent skill is designed to simplify initial setup by reading API credentials from an environment variable without exposing secrets directly. This reduces manual configuration steps and supports more streamlined deployment workflows, particularly in automated or team environments.
No issues were updated and no code was merged during this period. Development activity remains focused on this configuration improvement.
How can I help on this project?
- Prioritize review and approval of the setup automation work to accelerate deployment ease for teams adopting the module.
- Clarify whether simplified onboarding is a strategic priority, and if so, allocate resources to expand similar capabilities across other providers.
Contributors: Joshua Fernandes (joshua1234511)
Anthropic Provider
A new merge request was opened to add token counting, citations, and context management capabilities to the Anthropic integration. This work represents the third phase of migrating the module to use Anthropic's native software development kit.
The enhancement introduces three opt-in features that give site administrators more control over how their AI conversations are handled: the ability to track and limit the size of conversations (token counting), automatic citation of source materials in responses, and tools to manage conversation length by compacting or editing chat history. All three features are turned off by default, ensuring existing deployments continue to work exactly as they did before.
The merge request is currently under review. No issues were updated during this period.
How can I help on this project?
- Prioritize review and testing resources for the open merge request to accelerate delivery of new capabilities to users.
- Clarify strategic priority for token management features if cost control or usage monitoring is a business objective.
Contributors: Carlos Ospina (camoa)
amazee.ai Private AI Provider
The module reached an important milestone this period: a critical blocking issue preventing the chat feature from working on standard Drupal installations has been resolved. The problem affected sites using default page rendering optimizations, meaning the chat functionality was previously unusable in the most common deployment scenario. With chat() fails under Fiber-based rendering (BigPipe) — "stream handler closure" exception now closed, the provider can reliably deliver AI-powered chat completions to users across typical production environments. This fix removes a significant barrier to adoption and ensures the module performs as expected in real-world usage.
How can I help on this project?
- Prioritize user testing in production-like environments to identify deployment issues earlier in the development cycle.
- Consider allocating resources to accelerate the module toward a stable release if it supports strategic business objectives.
AI Agents
The AI Agents module made measurable progress on core stability this period. A critical bug that caused the system to crash when restoring an agent with images in its conversation history was resolved and merged. The fix for serialization errors ensures that agents can now reliably save and restore sessions containing file attachments, removing a barrier to production use.
Work is underway to address usability issues in the agent configuration interface. A missing close button on the tool settings popup has a solution in review, and a warning message when configuring default tools is being addressed.
Three new feature proposals were documented, all currently postponed pending maintainer approval of a broader architectural plan. These would enable agents to expose real-time progress updates, request user confirmation before executing sensitive actions, and preserve richer output from tools. While these features remain on hold, their specification work represents strategic planning for future capabilities.
Two new issues were raised regarding operational limits: file size controls and clarification of model selection behaviour for agents and sub-agents.
How can I help on this project?
Prioritise maintainer review of the pending architectural plan to unblock three proposed features. Clarify documentation or provide decision-making on whether file size limits and per-tool execution limits should be configurable at the agent level.
Contributors: AKHIL BABU (AkhilBabu) [1], Alexis Martínez (alexismmd), Bharat Kelotra (bharatkelotra), Marcus Johansson (Marcus_Johansson)
Drupal Canvas
Over the past 24 hours, Canvas achieved several significant improvements to workflow stability and feature completeness.
Two user-facing gaps were closed. Patterns can now be edited after creation; previously users had to delete and recreate them to correct mistakes or evolve designs. The Allow patterns to be edited feature was completed and merged. A data integrity issue that prevented standard deployment workflows was also resolved: `drush config:import` can fail to update a Component whose `active_version` changed was fixed, unblocking configuration synchronization across environments when component versions differ.
The headless architecture took a step toward independence. Canvas Headless now uses a dedicated endpoint instead of relying on the Lupus CE API, reducing external dependencies and giving the project tighter control over response contracts. This work (Replace Lupus CE API with a dedicated Canvas Headless endpoint) was merged.
Internal reliability improved through consolidated data normalization logic, strengthening the auto-save system's ability to generate stable hashes for detecting content changes.
Several issues remain open with active merge requests, including a view-mode preview rendering bug and ongoing work to support Canvas on entity types beyond nodes. A regression affecting older installations that stored certain metadata has been identified and requires an upgrade path.
How can I help on this project?
- Prioritize review and merge of the view-mode preview fix to restore editing for non-full templates.
- Support scoping and resourcing the upgrade path needed for the default-relative-url data migration to prevent further 500 errors on existing sites.
Contributors: **** (project_19391_bot_17a61b0edeafd5a3db3e8b2462b6c010), **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Adam G-H (phenaproxima), AKHIL BABU (AkhilBabu), Ben Mullins (bnjmnm), Christian López Espínola (penyaskito), Dave Long (longwave) [2], David Bravo (davidbp), Feliksas Mazeikis (f.mazeikis) [1], Harumi Jang (hooroomoo), Ignacio Sánchez Holgueras (isholgueras), Jakub Piasecki (zaporylie), Lauri Timmanee (lauriii), wotnak [1]
Context Control Center (CCC)
The Context Control Center continued work toward its first stable release this period, with a focus on hardening the product before beta4 and clarifying its subscription model for users.
Three significant merge requests landed. Work to add Scheduler to the CCC Extensions page was completed, making scheduled publishing and unpublishing of context items visible to administrators. A merge request that polishes developer APIs and internal documentation was merged, improving clarity for developers extending the module. The largest change was to improve conditional subcontext disabled-state behavior and admin UX, ensuring that when conditional AI decisions are turned off, the relevant context items are excluded from selection and editors receive clear guidance about why those items are inactive.
Two discussions concluded. A review of whether to add priority to context items to affect ranking ended, with the decision to proceed captured in a follow-up implementation issue. A separate discussion about integrating content reviews based on context was closed, with the goal of avoiding CCC changes for version 1.0.
Planning issues were opened to prepare for the next sprint, including a pre-release codebase review for beta4 and a discussion to review context selection ranking factors before 1.0. Work continued on hardening access checks and documenting the trust model, with a merge request already in review. Refinement of the user experience continues, including preparation of demo content to show how the module works and efforts to clarify scope eligibility and limits in UI help.
Several issues were created to simplify the module's configuration model. One proposes to remove the max items context limit and rely solely on the token budget, reducing overlapping controls. Another will persist token counts and show budget usage in the UI, helping site builders understand when they are nearing capacity. A third addresses a bug where sites enabling Dynamic Entity Reference after CCC installation can experience errors due to missing field storage.
How can I help on this project?
Prioritize user-experience and documentation review capacity before the release candidate. Ensure the team has time budgeted to finalize demo content and help text refinements. If scope eligibility decisions require product sign-off, schedule that review early in the next sprint to avoid blocking the stable release.
Contributors: Ahmad Khalil (ahmad-khalil-imagex), Juan Correa (jucs7), Kristen Pol (kepol) [3], Rob Loach (robloach), Tekla Aivazashvili (aivazashvilit)
AI Search
The AI Search module experienced no commits or completed work during this period. One issue was updated: Progressive indexing can drop tail chunks, which describes a scenario where content indexing may stop prematurely when using certain tokenizer configurations. This means some portions of long documents could be excluded from search results, potentially impacting search completeness for users.
The issue remains open with no merge request in progress. This represents typical alpha-stage refinement as the module evolves to support different configuration combinations.
How can I help on this project?
- Consider allocating development resources to address the progressive indexing issue, which could affect search reliability in production scenarios.
- Support prioritization discussions to determine whether this issue should block a stable release or be addressed in a later version.
AI translate
The AI translate project saw focused activity on two features that will improve the translation workflow for content editors on multilingual sites.
Work began on a fix for a translation failure affecting media entities. When editors attempt to translate images or other media items, the system currently encounters an error that prevents the batch operation from completing. A solution has been proposed to resolve this blocking issue.
In parallel, a new capability is under development to auto-translate referenced taxonomy terms when translating content. Currently, editors must manually translate each referenced term separately, adding time and effort to multilingual publishing workflows. The proposed enhancement would automatically translate taxonomy terms and other linked content entities during the main translation batch, streamlining the editorial process. Two merge requests have been opened for this feature.
Both pieces of work are in the early review stage and have not yet been integrated into the module.
How can I help on this project?
- Ensure code review capacity is available to evaluate and merge the pending translation fixes, particularly the media entity issue which blocks a key workflow.
- Consider resourcing for user acceptance testing of the referenced entity auto-translation feature once merged, to validate time savings for editorial teams.
Contributors: Carlos Romero (o0Charly0o), szato (odi)
LiteLLM AI Provider
The LiteLLM AI Provider module made meaningful progress in the last 24 hours, with two improvements merged to strengthen reliability and expand functionality.
A fix to enhance model retrieval with fallback for admin key access was merged, improving the module's ability to retrieve available models even when configuration challenges arise. This makes the system more resilient during setup and administration.
Additionally, support for translation was added, enabling the provider to handle text translation tasks. This expands the range of use cases the module can support, making it more versatile for multilingual content workflows.
Behind the scenes, several refinements were made to improve how the module detects model capabilities, handles caching, and validates configuration settings. These changes help ensure the module operates smoothly and efficiently in production environments.
How can I help on this project?
- Ensure sufficient testing resources are available to validate translation features across different language pairs and content types.
- Support community outreach to gather feedback from early adopters on real-world use cases and pain points.
Contributors: Carlos Romero (o0Charly0o), Dan Lemon [3]
AI Image Classification
Two installation issues were reported affecting users attempting to deploy the recipe on Drupal CMS sites. The first issue, Error when installing on Drupal CMS, involves a failure when installing through the administrative interface, preventing the recipe from being added to sites using the Haven template. The second, Error when applying recipe via Drush in Drupal CMS, blocks command-line installation, which is a common deployment method for development teams.
These issues prevent new users from successfully adopting the recipe, which limits the module's reach and delays delivery of automated image classification capabilities to content teams. Both issues remain unassigned and require investigation to determine root causes. As this is an early-stage module, some installation friction is expected during initial adoption, but resolving these blockers is important for expanding the user base and gathering broader feedback.
How can I help on this project?
- Allocate developer time to investigate and resolve the two open installation issues, which are currently preventing user adoption.
- Consider prioritizing testing resources to validate the recipe across different Drupal CMS configurations before broader release.
AI Content Classification
No development activity occurred during this period. Two installation issues were reported when attempting to use the recipe with Drupal CMS. The first involves a validation error related to a dependency (Error when applying recipe via Drush in Drupal CMS), while the second concerns a failure during the automated installation process through the administrative interface (Error when installing on Drupal CMS). Both issues prevent users from successfully deploying the recipe in Drupal CMS environments, which limits its practical adoption. These are typical integration challenges for a developing module and do not indicate systemic problems, but they do block immediate usability for the target platform. Resolution of these compatibility issues would enable smoother deployment and testing by early adopters.
How can I help on this project?
- Allocate developer time to investigate and resolve the two reported Drupal CMS installation blockers, which are preventing the recipe from being deployed by users.
- Consider establishing a testing environment for Drupal CMS compatibility to catch integration issues earlier in the development cycle.
References
[1] Approve the Chat Fundamentals (MCP-shaped rich chat) issue set for 1.6.x
[2] [Meta] Rich structured chat: adopt MCP content and interaction shapes
[3] (Optional) Typed context references on user messages via input-side content blocks
[11] Add a setup-guardrails agent skill to configure guardrails, guardrail sets, and global guardrails
[14] `AiReranker::extractItemText()` should prefer chunk text over configured indexed fields
[34] Issue #3607960: Add token counting, citations, and context management
[35] chat() fails under Fiber-based rendering (BigPipe) — "stream handler closure" exception
[36] Expose the agent status stream as MCP-shaped progress to any chat consumer
[43] AiAgentEntityWrapper::fromArray() fatals when the serialized chat history contains an image
[45] Use streamed chat for agents
[53] AiAgentEntityWrapper::fromArray() fatals when the serialized chat history contains an image
[57] Replace Lupus CE API with a dedicated Canvas Headless endpoint
[58] Canvas AI: Run the component agent in the dev chat with setLooped(FALSE), driven by the browser
[63] `drush config:import` can fail to update a Component whose `active_version` changed
[64] Allow patterns to be edited
[65] Strengthen AutoSaveManager to generate stable hashes
[70] feat(Headless): #3591893 Enable headless previews for content templates
[71] feat: #3518272 support all entity types with configurable displays for content templates
[72] #3498525 Allow entity types other than node; add feature flag module for taxonomy terms.
[73] Issues/3591884: Run component agnet with setlooped false.
[76] feat(Headless): #3591861 Use the new Canvas content API endpoint in the headless SDK
[83] #3591905: `drush config:import` can fail to update a Component whose `active_version` changed
[84] #3591851: Allow editing stored patterns
[88] refactor(Conflict resolution): #3591785 Strengthen AutoSaveManager to generate stable hashes
[93] Harden CCC context item access checks and document the authoring trust model
[94] CCC beta4 codebase review (pre-release)
[96] Persist context-item token counts and show token-budget usage in CCC UI
[101] Add Scheduler to CCC Extensions page
[102] [Meta] Prepare demo content and demo context items for the CCC to show how it works
[103] Clarify scope eligibility, ranking, and limits in UI help and documentation
[105] Improve conditional subcontext disabled-state behavior and admin UX
[110] Add context item ranking priority field and use for ranking selection logic
[115] Issue #3586356: Harden CCC context item access checks and document the authoring trust model.
[119] Issue #3586353: Add Scheduler to CCC Extensions page.
[121] Issue #3586292: Exclude conditional subcontext items when AI decisions are disabled.
[124] Progressive indexing can drop tail chunks
[125] InvalidArgumentException: Invalid translation language (und) when translating media entities
[126] Auto-translate referenced taxonomy terms (and other translatable entities) when translating a node
[128] feat: Add batch translation for referenced translatable entities in AiTranslateController
[129] fix: #3585532 Translation language (und) when translating media entities.
[130] fix: enhance model retrieval with fallback for admin key access
[131] feat: add translateText method and support for translation in LiteLlmAiProvider
Shipped
- AI module chatbot modal fix under review — Chatbot closes itself when adding a modal is being worked on in MR !1815, resolving issues with BigPipe-enabled sites where dialog re-attach could close the chatbot [13][25].
- AI Agents serialization fix merged to development — AiAgentEntityWrapper::fromArray() fatals when chat history contains images was fixed in a merged development MR, addressing file object reconstruction during deserialization [43][53].
- Canvas config import blocker merged to development — drush config:import failing to update Components whose active_version changed was fixed in a merged development MR, addressing deployments that previously failed with "loaded version is not the active version" errors [63][83].
- Canvas pattern editing capability merged to development — Stored patterns being reopenable in the Canvas editor for modification instead of requiring deletion and recreation was implemented in a merged development MR [64][84].
- CCC merged three beta4 improvements to development — Added Scheduler to Extensions page, polished developer APIs with ai_context.api.php and @internal annotations, and fixed conditional subcontext exclusion behavior when AI decisions are disabled [101][104][105][119][120][121].
Ongoing
- MCP-shaped rich chat proposal awaits approval — Twelve postponed issues covering ChatMessage content blocks, citations, tool rendering, and elicitation await maintainer approval for 1.6.x branch [1][2][3][4][5][6][7][8][9][10].
- AI request tag registry under review — MR !1907 adds ai.tag_registry service and hook_ai_tags_info() for modules to register emitted request tags statically and dynamically [12][24].
- Anthropic provider token counting and citations in review — MR !35 implements opt-in token counting via native SDK, citations, and context management with 1,823 lines of changes [34].
- AI Search progressive indexing drops tail chunks — Long Chunk embedding strategy silently fails to index trailing content due to tokenizer mismatch between computeItemChunks() and getEmbedding(), leaving hundreds of chunks unindexed [124].
- Canvas AI component agent browser-driven work in progress — Component agent being adapted to run with setLooped(FALSE) and browser-driven execution in dev chat [58][73].
AI (Artificial Intelligence)
A comprehensive design proposal for rich structured chat landed this period. The [Meta] Rich structured chat: adopt MCP content and interaction shapes plan — filed as 12 deliberately postponed issues awaiting maintainer approval via Approve the Chat Fundamentals (MCP-shaped rich chat) issue set for 1.6.x — proposes that ChatMessage adopt Model Context Protocol shapes directly. The set covers content blocks, citations, tool output rendering, elicitation, and progress indicators. Foundation issues include Add MCP content blocks and a _meta bag to ChatMessage, Add ChatOutput::setMetadata() and stop discarding chunk metadata in streamed reconstruction, and ChatProcessor: structured response channel and block-aware message history. The plan targets the 1.6.x branch and awaits maintainer approval; no work has begun.
Elsewhere, MR !1907 adds an AI request tag registry (ai.tag_registry service, hook_ai_tags_info()) for Modules should register the AI request tags they can emit, at install time and dynamically. `AiReranker::extractItemText()` should prefer chunk text over configured indexed fields was accepted, addressing a search_api_ai regression where chunk-mode reranking reads entity-level text instead of per-chunk content. Chatbot closes itself when adding a modal reached RTBC with MR !1815. ai_ckeditor: streamGenerateContent causes 400 Bad Request with Gemini 2.x models was confirmed; streaming requests via gemini-api-php fail with Gemini 2.x while non-streamed requests succeed.
How can I help on this project?
Review MR !1907 (AI request tag registry and hook_ai_tags_info()). Test MR !1815 (chatbot modal fix) in Drupal 11.4 with BigPipe enabled. Investigate the Gemini 2.x streaming 400 error by tracing gemini-api-php payload differences between streaming and non-streaming endpoints.
Contributors: Abhinav Jha (ajabhinavjha30), Abhishek Dhariwal (adaptative), Bharat Kelotra (bharatkelotra), Joshua Fernandes (joshua1234511), Marcus Johansson (Marcus_Johansson), Ricardo Castañeda (cadence96), Rob Loach (robloach), Rodel Duterte (rduterte), Shivam Sen (shivamsen_12579)Drupal AI Initiative
Activity was minimal during this period. A QA Meeting - 25th Feb 2026 work item was closed, reflecting administrative housekeeping rather than technical development.
No merge requests were merged and no commits were pushed to the codebase during the reporting window. No API changes, bug fixes, or feature work landed in this 24-hour period.
How can I help on this project?
Check the issue queue for unassigned issues without open merge requests that need patches. Review open merge requests to provide feedback and help move work forward. Test recent AI module integrations and report compatibility issues.
OpenAI Provider
A new merge request was opened to add an agent skill for configuring the OpenAI provider from the command line. The Add a setup-provider agent skill to configure the OpenAI provider from an environment variable MR introduces a `.agents/skills/setup-provider/SKILL.md` file that enables setting up the provider by reading an API key from an environment variable using `drush key:save` and core config commands. The skill follows the pattern established in AI core, avoiding tool plugins and the `drupal/tool` dependency, with no new PHP code or test requirements.
No commits were merged during the reporting period.
How can I help on this project?
Review the setup-provider agent skill MR to validate the skill definition follows best practices and works correctly with environment variable handling. Test the skill against a live site to ensure the configuration workflow is robust.
Contributors: Joshua Fernandes (joshua1234511)Anthropic Provider
A new merge request was opened to implement token counting, citations, and context management (MR !35). This represents phase 3 of the native SDK integration effort and introduces three opt-in features. Token counting adds a public AnthropicProvider::countTokens() method backed by the SDK's native counting API. Citations and context management (including compaction and editing) are also included. All three features are disabled by default and controlled via new admin form sections, ensuring backward compatibility with the existing chat API when the features are turned off.
The merge request includes 1,823 lines of changes and is currently awaiting review.
How can I help on this project?
- Review MR !35 for token counting and citations, focusing on API design and backward compatibility.
- Test the new token counting method with various ChatInput configurations to verify accuracy against Anthropic's SDK.
amazee.ai Private AI Provider
The primary focus this period was on addressing compatibility issues with Drupal's default rendering pipeline. chat() fails under Fiber-based rendering (BigPipe) — "stream handler closure" exception was closed. This issue prevented the provider from executing chat completions when calls were made within PHP Fibers, which occurs routinely in Drupal sites with BigPipe enabled (a core module active by default). The failure manifested as a "stream handler closure" exception from the OpenAI factory, effectively blocking chat functionality in standard production environments.
No merge requests were opened or merged during this period, and no commits were pushed to the repository.
How can I help on this project?
- Test the chat() function in environments with BigPipe enabled to verify the Fiber compatibility fix works across different Drupal configurations.
- Review the module's broader streaming implementation to identify any similar Fiber-related edge cases that may not yet have surfaced.
AI Agents
The fix for AiAgentEntityWrapper::fromArray() fatals when the serialized chat history contains an image was merged. The serialization round-trip through toArray() and fromArray() was breaking when chat histories included file attachments; AbstractFileBase::toArray() serialized files correctly, but restoration failed because fromArray() expected file objects and received arrays instead. The fix ensures ChatMessage properly reconstructs file objects during deserialization.
Three new feature proposals targeting the postponed Chat Fundamentals plan (pending maintainer approval for 1.6.x branches) were updated: Preserve structured tool output as content blocks through the agent loop, Vetoable AgentToolPreExecuteEvent and annotation-driven pre-tool confirmation via elicitation, and Expose the agent status stream as MCP-shaped progress to any chat consumer. These remain blocked on upstream approval.
Two UI bugs received patches: Tool settings popup on agent edit form has no visible close/save button (MR !335 open) and Warning: Undefined array key "parameters" in AiAgentEntityWrapper->getDefaultInformationTools() (MR !331 open). A new issue, No way to limit the size of files passed to an agent, proposes per-agent file size configuration.
How can I help on this project?
Review MR !335 for the Tool settings popup close button fix or MR !331 for the undefined array key warning. Contribute design input on file size limit configuration. Help clarify model selection behavior in Configuring the model an agent uses.
Contributors: AKHIL BABU (AkhilBabu) [1], Alexis Martínez (alexismmd), Bharat Kelotra (bharatkelotra), Marcus Johansson (Marcus_Johansson)
Drupal Canvas
Three significant features and fixes were merged in the past 24 hours. Canvas Headless switched from the Lupus CE API to a dedicated Canvas content endpoint, removing the dependency on Lupus Decoupled and giving Canvas full control over the headless response contract. The new /canvas/content-api endpoint provides draft-aware content, document head data, and route information via the fetchPage() client.
A critical deployment blocker was resolved: drush config:import can now update Components whose active_version changed. Previously, importing component configuration with a different active version hash would fail with a "loaded version is not the active version" error, breaking the standard drush deploy workflow.
The editor gained the ability to edit stored patterns. Patterns can now be opened back into the Canvas editor for modification, addressing a longstanding gap where users had to delete and recreate patterns to make changes.
A normalization refactor consolidated duplicated typed-data casting logic from AutoSaveManager::normalizeEntity() and ComponentSourceBase::castRawTypedConfigToPhpTypes() into a single TypedDataHelper::castRawPhpTypes() method, strengthening hash stability for auto-save conflict detection.
Open work includes fixing blank content template previews for non-full view modes (iframe stuck at height 0px), an upgrade path for default-relative-url prop sources written before 1.8, and a browser-driven Canvas AI component agent using setLooped(FALSE).
How can I help on this project?
Review the open MR for fixing blank non-full view mode previews, which updates iframe height handling. Help test or review Cypress E2E parallel balancing by runtime weight, which addresses slow CI nodes. Reproduce and confirm steps for Media Library widget modal not opening.
Contributors: **** (project_19391_bot_17a61b0edeafd5a3db3e8b2462b6c010), **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Adam G-H (phenaproxima), AKHIL BABU (AkhilBabu), Ben Mullins (bnjmnm), Christian López Espínola (penyaskito), Dave Long (longwave) [2], David Bravo (davidbp), Feliksas Mazeikis (f.mazeikis) [1], Harumi Jang (hooroomoo), Ignacio Sánchez Holgueras (isholgueras), Jakub Piasecki (zaporylie), Lauri Timmanee (lauriii), wotnak [1]
Context Control Center (CCC)
The project merged three improvements focused on cleanup and documentation ahead of the beta4 release. MR !231 added the Scheduler module to the Extensions admin page, surfacing optional scheduled publishing and unpublishing support for context items. MR !234 polished developer-facing APIs by introducing ai_context.api.php, marking internal APIs with @internal, and reconciling configuration and documentation inconsistencies. MR !226 changed conditional subcontext behavior so that when the Enable conditional subcontext AI decisions setting is disabled, conditional children are excluded from selection entirely rather than being unconditionally included.
Several new planning and cleanup issues were opened. Review context selection ranking factors before 1.0 calls for shared understanding of how scope matching, eligibility, and ranking work together. Add context item ranking priority field proposes a new priority field to influence selection order. Remove max_items context limit suggests simplifying configuration by relying solely on the token budget. Install target_entities field storage when Dynamic Entity Reference is enabled addresses a database fatal on existing sites.
Work is in progress on access hardening (MR !233), demo content preparation, and form description decoupling (MR !239).
How can I help on this project?
Review MR !233 on access checks and trust model documentation, or MR !239 on scope form descriptions. Help refine the ranking discussion in issue #3586365. Pick up the unassigned Dynamic Entity Reference field storage bug.
Contributors: Ahmad Khalil (ahmad-khalil-imagex), Juan Correa (jucs7), Kristen Pol (kepol) [3], Rob Loach (robloach), Tekla Aivazashvili (aivazashvilit)
AI Search
No merge activity occurred during this period. A critical bug was identified in the progressive indexing system: Progressive indexing can drop tail chunks reveals that the Long Chunk embedding strategy can silently fail to index trailing content. The root cause is a mismatch between chunk counting and actual chunking—computeItemChunks() uses a hard-coded GPT-3.5 tokenizer while getEmbedding() uses the tokenizer configured on the Search API server. In one documented case, this discrepancy caused the tracking system to count 106 chunks while actual processing generated 370. Search API marked items as complete after processing only the first 100 chunks, leaving the remainder unindexed. This affects any configuration using a tokenizer other than GPT-3.5, including XLM-RoBERTa and others. The issue remains open and unassigned.
How can I help on this project?
- Investigate the tokenizer mismatch in Progressive indexing can drop tail chunks and develop a patch ensuring computeItemChunks() and getEmbedding() use consistent tokenization.
- Test the reproduction steps with different tokenizer configurations to document the full scope of affected setups.
AI translate
Activity focused on improving translation handling for media entities and referenced content. A fix was proposed for an InvalidArgumentException: Invalid translation language (und) when translating media entities issue, where batch translation of media entities (such as media.image) fails when the translation language is not properly set. Two merge requests addressing this issue were opened: MR !30 and MR !36.
Work also advanced on auto-translating referenced taxonomy terms and other translatable entities when translating nodes. The proposed solution adds a batch operation translateReferencedEntities() that scans entity reference fields and automatically translates referenced ContentEntityInterface instances that lack translations in the target language. MR !35 was opened with 109 lines of changes implementing this feature.
Both issues remain open with no commits merged during this period. Progress is blocked pending review of the open merge requests.
How can I help on this project?
- Review and test MR !30 or MR !36 for the media translation language fix
- Review MR !35 implementing automatic referenced entity translation
LiteLLM AI Provider
The LiteLLM AI Provider saw significant progress over the past 24 hours, with two merge requests landed and several improvements committed to the codebase.
On the feature side, a feat: add translateText method and support for translation in LiteLlmAiProvider merge request was integrated, adding translation capabilities to the provider. This 72-line change introduces the translateText method to the LiteLlmAiProvider class.
Several bug fixes were also merged. A fix: enhance model retrieval with fallback for admin key access addressed issues with model retrieval by implementing fallback logic for admin key access. Additional commits introduced null-safe key loading in settings form validation, cache model retrieval per request, and added request timeout handling to improve reliability.
The provider also gained enhanced capability detection, with commits adding support for vision, tools, and structured output detection while removing unimplemented video and audio operation types to better reflect actual capabilities.
How can I help on this project?
The project currently has no open issues or pending merge requests visible in this reporting period. Consider testing the newly added translation features in real-world scenarios, reviewing code quality and test coverage for recent commits, or checking the issue queue for any unresolved bugs.
Contributors: Carlos Romero (o0Charly0o), Dan Lemon [3]
AI Image Classification
No merge requests were completed or commits pushed during this period. Two blocking issues were reported that prevent the recipe from being applied on Drupal CMS installations. Error when applying recipe via Drush in Drupal CMS surfaces a ValidKeysConstraintValidator error that halts installation at the 3/5 mark after Field Widget Actions and AI Automators are installed. A separate issue, Error when installing on Drupal CMS, documents a SandboxException during Composer operations when attempting to install via the admin UI on sites using the Haven template. Both issues are unassigned and remain open, blocking adoption on Drupal CMS environments.
How can I help on this project?
- Reproduce and debug the ValidKeysConstraintValidator error on a fresh Drupal CMS installation to identify which configuration is passing a string instead of an array.
- Investigate the Composer process failure in the Package Manager sandbox to determine dependency conflicts with the Haven template.
AI Content Classification
No merge requests or commits were pushed during this reporting period. Two installation issues were opened within the last 24 hours, both affecting fresh Drupal CMS deployments. The first issue, Error when applying recipe via Drush in Drupal CMS, reports a validation error when applying the recipe via Drush, with the recipe.yml file referencing "token_entity_render" as an unknown module or theme. The second issue, Error when installing on Drupal CMS, describes a SandboxException during Composer operations when attempting installation through the admin UI on a site using the Haven site template. Both issues appear to block installation on standard Drupal CMS environments and remain unassigned with no related merge requests.
How can I help on this project?
- Investigate the token_entity_render dependency issue in Error when applying recipe via Drush in Drupal CMS and prepare a patch correcting the recipe.yml file.
- Reproduce and debug the Composer failure in Error when installing on Drupal CMS to identify the underlying dependency conflict.
References
[1] Approve the Chat Fundamentals (MCP-shaped rich chat) issue set for 1.6.x
[2] [Meta] Rich structured chat: adopt MCP content and interaction shapes
[3] (Optional) Typed context references on user messages via input-side content blocks
[4] Citations/sources and suggested replies via MCP shapes
[5] Elicitation round-trip: MCP-shaped request/result objects and pause/resume on ChatProcessor
[6] ChatBlockRenderer plugin type with default renderers and entity cards
[7] ChatProcessor: structured response channel and block-aware message history
[8] Add MCP content blocks and a _meta bag to ChatMessage
[10] Add ChatOutput::setMetadata() and stop discarding chunk metadata in streamed reconstruction
[12] Modules should register the AI request tags they can emit, at install time and dynamically
[13] Chatbot closes itself when adding a modal
[24] feat: #3586638 Add AI request tag registry with static and dynamic discovery
[25] Issue #3499451: Restore toolbar chatbot state idempotently so a dialog re-attach cannot close it
[34] Issue #3607960: Add token counting, citations, and context management
[43] AiAgentEntityWrapper::fromArray() fatals when the serialized chat history contains an image
[53] AiAgentEntityWrapper::fromArray() fatals when the serialized chat history contains an image
[58] Canvas AI: Run the component agent in the dev chat with setLooped(FALSE), driven by the browser
[63] `drush config:import` can fail to update a Component whose `active_version` changed
[64] Allow patterns to be edited
[73] Issues/3591884: Run component agnet with setlooped false.
[83] #3591905: `drush config:import` can fail to update a Component whose `active_version` changed
[84] #3591851: Allow editing stored patterns
[101] Add Scheduler to CCC Extensions page
[104] CCC DX/docs polish before rc1 (api.php, @internal, config/docs, small standards nits)
[105] Improve conditional subcontext disabled-state behavior and admin UX
[119] Issue #3586353: Add Scheduler to CCC Extensions page.
[120] Issue #3586359: Polish developer APIs and internal documentation
[121] Issue #3586292: Exclude conditional subcontext items when AI decisions are disabled.