SIGN IN SIGN UP

The all-in-one AI productivity accelerator. On device and privacy first with no annoying setup or configuration.

0 0 45 JavaScript

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