Add a ChatMemoryInterface for storing ChatBot chat history
## Problem/Motivation ChatBots need a way to store chat history. Today there is no standardized mechanism for a ChatBot to persist conversation history across requests. We want each ChatBot to be **in charge of its own memory handling**: - A ChatBot may opt in to a server-side memory backend by setting up a `ChatMemoryInterface` implementation. - A ChatBot may instead handle history entirely on the frontend (e.g. browser `localStorage`) and skip the interface altogether. The decision — whether to use a `ChatMemoryInterface` at all, and which implementation — belongs to the ChatBot. ## Proposed resolution - Add a `ChatMemoryInterface` in the AI module (`project/ai`) for now. - Allow a ChatBot to optionally configure a ChatMemory implementation to persist chat history server-side. - Keep storing history the ChatBot's responsibility: using the interface is optional, and a ChatBot can store history in the frontend instead. - Likely provide a plugin manager / attribute so implementations can be discovered, consistent with the ChatProcessor plugin system (#3492940). ## Remaining tasks - Define the interface methods (e.g. load / save / append / clear history, thread handling). - Decide on plugin discovery (attribute + plugin manager) vs. a plain service/interface. - Document how a ChatBot opts in to a server-side ChatMemory implementation, or handles memory on the frontend. ## Related - #3492940 (Add ChatProcessor) - #3585075 (Add AI Assistant API ChatProcessor plugin) - #3585077 (Integrate ChatProcessor plugin system into AI Chatbot DeepChat block)
issue