The all-in-one AI productivity accelerator. On device and privacy first with no annoying setup or configuration.
feat: Memories/Personalization (#5269)
* add memory storage layer with model, endpoints, schema, and system setting * add memory extraction background worker * handle single-user and multi-user mode for memory extraction * add memory injection and personalization ui * lint * personalization UI polish, fix RBAC for all roles, and endpoint guards * split admin personalization page into subcomponents * split admin personalization page into subcomponents, use early return instead of ternary for readability * make error responses consistent in memory endpoints * consolidate duplicate MemoryItem into shared component * skip memory reranking when no query context is available * extract promptWithMemories util to deduplicate memory injection * add english translations * refactor memory api routes to eliminate ambiguous path params * make memory extraction interval and idle threshold configurable via env vars * add hint to memory form input * inline personalization content in admin settings page * consolidate unprocessed chat queries into single fetch * simplify personalization page with early returns and layout subcomponent * add memories sidebar with chat settings menu redesign * remove legacy personalization ui * split MemoriesSidebar into subcomponent folders * fix memory card menu spacing to match design * fix memories visibility for non-admin users * add english translations for memories sidebar ui * add workspace access checks to all memory endpoints * pass user prompt to agent getDefinition for memory reranking * check idle threshold per user/workspace group instead of globally * use factory pattern for i18n text sizes and replace Trans with plain t() keys * add placeholder examples and format guidance for manual memory creation * remove stale comment * refactor chat menu * refactor sidebar to use provider and simplified DOM rendering * fix memories sidebar overflow from long workspace names, widen memories options menu * fix edit memory modal cursor landing at start of input * hide memory add/move actions when at limit * revert scope of workspace settings route changed for first pass of memories ui * jsdoc memory model methods, drop redundant error logs * inline error response returns and move body validation after perms in memory endpoints * run memory fetches concurrently in list endpoint and prompt injection * jsdoc server memory model methods * normalize memory_enabled to true/false and add SystemSettings helper * extract memory ownership middleware, strip redundant .end() calls * use validWorkspaceSlug middleware for memory endpoints, switch to slug-based urls * add description to memories util * simplify memory ownership middleware to single db query * use aibitat tool call for memory extraction, add chat safety limits * truncate per-chat prompt/response before memory extraction * add input validation to memory model * validate ids array input in markMemoryProcessed * inline memory injection in chatPrompt and systemPrompt * make memory migration additive and drop unused sourceThreadId * normalize translation files * reset translations, minor nit * refactor consts, extract memories with outputs * set intervla * sync * rearch how memory extract works by moving to Observer/Reflector pattern (Mastra aspect) * remove timeout on load * Feat/memory i18n (#5661) translations for #5269 --------- Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
S
Sean Hatfield committed
bd7d30a96de62f890d9fa920d7d6c2409c557487
Parent: 0579a86
Committed by GitHub <noreply@github.com>
on 5/20/2026, 12:24:18 AM