Repository navigation
Update dependency @mastra/memory to v1 - #13
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
Contributor
Author
|
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
from
April 16, 2026 20:15
22b8036 to
8cc0688
Compare
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
from
April 27, 2026 23:44
8cc0688 to
b975e21
Compare
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
4 times, most recently
from
May 27, 2026 22:42
6a1a0ed to
177738e
Compare
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
3 times, most recently
from
June 6, 2026 00:49
c2cb6f5 to
e98fed9
Compare
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
2 times, most recently
from
June 12, 2026 23:30
3c1db7d to
f857d87
Compare
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
3 times, most recently
from
June 20, 2026 14:43
2a8f5a6 to
9634220
Compare
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
2 times, most recently
from
June 27, 2026 06:36
42539f1 to
475e5f8
Compare
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
3 times, most recently
from
July 6, 2026 00:34
17548b2 to
8adfe93
Compare
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
from
July 10, 2026 23:54
8adfe93 to
f3b22b7
Compare
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
from
July 18, 2026 02:00
f3b22b7 to
2bf3cec
Compare
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
2 times, most recently
from
August 1, 2026 02:21
d6ee87c to
955f251
Compare
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
2 times, most recently
from
August 8, 2026 21:51
a47bb4a to
7685be9
Compare
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
3 times, most recently
from
August 22, 2026 05:16
986f57c to
1fe5e4d
Compare
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
from
August 29, 2026 13:03
1fe5e4d to
b36cd98
Compare
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
2 times, most recently
from
September 6, 2026 05:52
75f08c9 to
d31ce80
Compare
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
3 times, most recently
from
September 18, 2026 21:56
7807e1a to
92ca6c5
Compare
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
3 times, most recently
from
September 28, 2026 02:33
178e84b to
d9bc27b
Compare
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
4 times, most recently
from
October 9, 2026 10:57
f9276af to
323e271
Compare
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
6 times, most recently
from
October 14, 2026 23:17
2c04fc2 to
7859c52
Compare
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
from
November 8, 2026 14:51
7859c52 to
1157ed2
Compare
renovate
Bot
force-pushed
the
renovate/mastra-memory-1.x
branch
from
November 8, 2026 17:07
1157ed2 to
9bdd332
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
0.2.10→1.41.0Release Notes
mastra-ai/mastra (@mastra/memory)
v1.41.0Compare Source
Minor Changes
Changes to an experimental, upcoming memory feature. (#28353)
experimental_subconsciousand the Memoryknowledgeoption are removed: setting either now throws, saying to attach Knowledge to the agent instead (knowledge: falseis still accepted).SubconsciousandKnowledgeSemanticIndexCoordinatorstay exported from@mastra/memoryso older code still loads, and throw when constructed.@mastra/core/knowledgeexportsKnowledgewith its option and result types and the Knowledge storage domain; the tool, pin and semantic-index helpers are internal.Agent
scopesare plain"<type>:<value>"strings that say who the run is; what the run may read or write comes from whoever consumes them, such as Knowledge's scope declarations.A message can carry its own scopes:
session.sendMessage({ content, scopes }). A run's scopes are fixed when it starts, so a message whose scopes differ from the running run's waits for it to end, then starts its own run in the same conversation.sendSignalreports this as{ action: 'blocked', reason: 'scope-mismatch', runId }.queueMessage,queueSignal,sendNotificationSignalandsteertakescopesthe same way: a queued or steering message, or a notification, whose scopes differ from the running run's starts its own run with its scopes after that run instead of joining it. A deferred notification keeps the scopes it was sent with. Scopes are set in process only: remote callers (the agent controller HTTP routes and@mastra/client-js) can't send them. To derive scopes from a request, give the agent ascopesfunction that reads trusted request context. When the thread's claimed owner runs in another process, a message with scopes isn't queued:sendMessagerejects with an error saying scopes don't cross processes. Messages without scopes still join that owner's run.Attach Knowledge with
new Agent({ knowledge, scopes }). Knowledge needsscopes, the scope types its runs may hold and who gets which role on them:new Knowledge({ storage, scopes: { ...knowledgeMemoryScopes() } })declares Memory'sthread:/resource:scopes and anorg:scope;{}declares none. A run holding a scope that isn't declared fails. Tools are off by default:tools: truegives the read and write tools,tools: { read: true }the read tools only, andpinnedContext: true(or{ maxPins, maxTokens }) delivers pinned pages every turn and addsknowledge_pin.knowledge.readScopeFor(principals)returns what holders of those scopes can read, for host code reading the store directly.knowledge.explainAccess(runScopes, { scope } | { page })says why a run can or can't reach a scope or page; it's host-only, so never expose it through an agent tool or an unauthenticated route.knowledge.onChange(listener)reports each committed write made throughknowledge.getStorage()(tools included) by id, for live UIs; re-read each page under the viewer's read scope before showing it. A scope declaration can carry adisplayLabelfor UIs, andknowledge.scopeDeclaration(key)returns a declaration's display fields.Knowledge is a tree of pages. The tools are five:
knowledge_search,knowledge_read(a page with its notes, or a scope's pages),knowledge_page(op: 'write' | 'move' | 'merge'),knowledge_note(op: 'add' | 'restamp' | 'remove') andknowledge_pin(op: 'pin' | 'unpin'). Notes are at most about 250 tokens and page descriptions about 100; long text goes in a page body.Search is keyword search by default. Give Knowledge a
vectorstore and anembedderandknowledge_searchblends keyword and semantic results; pages and notes written through the tools are embedded as they're written. Every semantic hit is re-checked against what the run can read before it's ranked, so hidden content never fills result slots. Content written straight to the store isn't embedded.Observational Memory semantic search now works with a vector store that generates embeddings itself, so no
embedderis needed. (#27005)With MongoDB Automated Embedding, MongoDB embeds each observation when it is written and the search string when you query:
The agent's
recalltool searches the same way. Observations are indexed undermemory_observations_selfembed. Configurations that pass anembedderkeep working unchanged.Patch Changes
dependencies updates: (#29124)
diff@^9.0.0↗︎ (from^8.0.4, independencies)Fixed memory recall exposing stored reasoning. Recall now returns visible message content while preserving text and tool part indices, and paging no longer stops early at messages that only contain reasoning. (#28810)
Fixed Observational Memory context leaving the
<observations>block open. The block now ends with</observations>right after the last observation, so current-task and suggested-response hints are no longer read as part of the observations. Fixes #29141. (#29224)Observational Memory now tells the Observer who sent each user signal. In a thread shared by several people, messages sent with
agent.sendMessage({ contents, attributes: { name: 'Alice' } }, ...)are labeledUser (name="Alice")when observed, so observations can say who said what instead of attributing everything to "User". Messages without attributes keep the plainUserlabel. (#29176)Updated dependencies [
47a6cd8,0a553f0,7c242c5,99ca92b,4d3ebbd,96853ee,9e1f7df,2d01b00,4253a7d,8751dd7,a4d1537,5a37eef,fcf50d9,41dc481,500edeb,76d8c88,682e8f3,0a553f0,01524b2,697ea99,01524b2,c17855e,f3265d8,cbe76c0,f21823d,f21823d,f51fad8,7ad1918,f3265d8,01524b2,01524b2,f21823d,234d7a3,19ca27a,234d7a3,234d7a3,d67a35d,f21823d,ba50b06,f3265d8,f21823d,f21823d,4d2dbf5,4d2dbf5,6f384d6,76d8c88,db9a817,b623db8,61d08dd,49e59f2,c7d27f6,fa0d2b4,4168b42,0900c20,642c62f,49d3efd,b3b2cd2,cd6088d,ebf8a9a,5f337d4,99ca92b,ead7272]:v1.40.0Compare Source
Minor Changes
Added compact observer failure details and a reference to the failed memory-operation span when Observational Memory interrupts an agent. Observer context-window exhaustion is recorded as a limit, while the affected agent records an interruption. (#28703)
Failure markers in streams and persisted messages, and tripwire metadata, now include
observerFailurewith the observer span reference and failure classification.Patch Changes
Deleting a thread with
memory.deleteThread()now also deletes the thread's live event stream from the Mastra pubsub (for example, Redis). Before, a deleted thread's stream stayed in Redis until it expired, or forever if the pubsub had no expiry. (#28968)Fixed observational memory search scanning the whole vector table on PostgreSQL. The observation index now gets
resource_idandthread_idmetadata indexes, like semantic recall. Existing tables get them on the first run after upgrading. WithdisableInitonPgVector, create them yourself for eachmemory_observations_*table, replacingpublicwith yourschemaNameif you set one: (#29058)Fixed observational memory re-embedding every earlier observation group on each cycle when vector retrieval is enabled. Each cycle now embeds and stores only the group it adds. Fixes #27930. (#28150)
Resource-scoped observational memory with vector retrieval now indexes new observations too. Before, nothing from those cycles reached the vector store.
If storing a group's vector fails, the observation cycle still completes and logs a warning. That group is not retried.
Improved type declaration formatting. Published
.d.tsfiles are now generated with TypeScript 7, so some literal types use single quotes and some union members appear in a different order. The types themselves are unchanged. (#28726)Updated dependencies [
1b8b0ac,278ecce,1477aad,9f03685,fcfb773,4c56da4,dfc1bc6,7b3f759,cf4c4b6,e57fc08,780ef82,1497362,52265cb,280fb9d,253aa55,3ee0f7b,3d8cc6a,7691115,b79e61a,9e36f35,292dd6c,5ea837f,ba8b955,db7306f,c5527a3,5480e7b,d4cd4cd,744aaab,5b7f85e,91428b2,6a18fc5,f145b78,fbd5957,1048bd6,1607791,d6a6568,f3e1356,1a2ff7f,39edcee,0443fd5,6a2b35f,1966af4,49080fa,14290e1,b89557e,69c79cf,422910c,2b05803,8b781d0,299d4e3,c0918c0,690bd1b,930f604,f5136e5,81cf36f,6deb7c0,e77a7d9,d102756,80f2f21,e9fc83e,7d3dd2b,d9e26f4]:v1.39.1Compare Source
Patch Changes
dependencies updates: (#28417)
diff@^8.0.4↗︎ (from^8.0.3, independencies)lru-cache@^11.5.3↗︎ (from^11.2.7, independencies)@copilotkit/aimock@^1.46.0↗︎ (from^1.29.0, indevDependencies)@types/node@22.19.15↗︎ (from22.20.5, indevDependencies)@types/lru-cache@^7.10.10↗︎ (fromdevDependencies)Fixed Observational Memory injecting the continuation hint on threads that have no observations yet when retrieval is enabled. The hint (a synthetic user message telling the model earlier context was summarized) now only appears once observations have actually replaced messages. Fixes #26562 (#26826)
Observational memory now detects context-overflow errors with the shared provider error reader from @mastra/core, so it recovers from the same overflow shapes the rest of Mastra recognizes, including overflow named only in a provider's response body or stream error frame. These packages now require @mastra/core 1.80.0 or newer. (#28496)
If your package manager reports a peer conflict after this release, upgrade @mastra/core first, then the package:
Before, a project could pair @mastra/memory with @mastra/core 1.78 and install cleanly; after, that pairing is refused at install time instead of failing at runtime.
Fixed observational memory dropping messages when the Observer model returns an empty response. An empty or whitespace-only Observer reply is now retried like a model error, with backoff, up to
observation.maxRetries. If every attempt comes back empty,lastObservedAtstays where it was, so those messages remain pending, andfailurePolicydecides how the turn proceeds. A provider that always returns empty output therefore uses the full retry budget beforefailurePolicyapplies. (#27294)summarizeConversation()andmemory.summarizeThread()now throw once retries are exhausted on empty Observer output, instead of returningsummary: ''.Fixed Observational Memory keeping a run's original user message in the prompt after it had been observed. Once memory has observed the request and the model has answered it, the request leaves the prompt and the observations stand in for it for the rest of the run, as they already did on later turns. (#28364)
Keeping it had two costs:
Tool results and messages the model has not read yet still stay in the prompt until it reads them. The request message stays stored; only details the observer did not copy into its observations, such as a pasted link, are no longer sent once it has been observed.
Fixed observational memory dropping messages when the Observer model replies with text but no observations, such as a refusal ("I can't help with that"). These replies are now retried the same way as an empty reply, with the same
observation.maxRetriesbudget, andfailurePolicydecides the turn once retries run out. A reply that carries only other Observer sections, such as<current-task>, is still accepted. (#28456)In resource scope, a thread the Observer leaves out of its reply no longer has its cursor advanced. Its messages are observed in a later cycle. A reply whose
<thread>blocks name none of the requested threads is retried.Observer sections written on one line, such as
<observations>- note</observations>, are now parsed instead of being ignored.Keep the current user request and delayed tool results in the prompt when a durable Observational Memory turn resumes on another worker. Preserve completed live background results when reconciling stored messages. (#28045)
Fixed a long agent run ending with a context-window error after observational memory had already recovered from one. Recovery now moves the rest of the run's response to a new message, so a later overflow in the same run can be observed and retried too. (#28358)
Fixed per-request observationalMemory: false and { enabled: false } overrides so they disable observational memory for that request while preserving message history and subsequent enabled runs. Fixes #27814. (#28143)
Fixed
@mastra/memoryfailing to load in Node ESM withCannot find module 'probe-image-size/sync'. (#28139)Fixed working-memory data leaking into recalled history after raw message writes and partial message edits. Preserved observation markers and omitted content fields. Message edits now index the visible text the message keeps after the edit, so semantic recall no longer drops a message whose edit only touches working memory or metadata. Fixes #27946. (#28149)
Fixed Observational Memory calls continuing after an agent run is cancelled. Synchronous observation and reflection now stop with their run and leave the run's messages unobserved for a later cycle. Async buffering and background reflection keep running after the run is cancelled, and
settled()still waits for them; only the run's own waits on that work stop. Fixes #27792. (#28158)Fixed Observational Memory crashing when stored conversation history contains a failed tool call with a structured error instead of a text message. Both token counting and the observer now handle these errors, so Observational Memory keeps working on later turns instead of stopping. Fixes #28407. (#28440)
Fixed agents saying they can't save information when working memory uses
agentManaged: false. The instructions now say that memory updates automatically after each response. Agents acknowledge new information instead of claiming they can't save it. OnlyreadOnly: truetells agents they cannot update working memory. (#28441)Updated dependencies [
ce5d473,a15ea70,ce5d473,f396b43,c253e13,0a913e0,c8f8e41,3dfe2eb,152e380,08640de,b7ff751,24a821b,551189d,99e4867,a1e248b,0afde2c,38ff787,929a728,1fc075a,1fc075a,a5a9179,38ff787,52db47c,8e1247c,ed76bdc,2f655e5,ac953f0,ca04e2c,9ffb79b,155e3ac,be5c929,7adffbb,e39aa42,0d7d5cb,7c20f00,e20bbd0,c9ff73d,f51a29e,7d58088,4ad204d,f5ebbf3,decd0a0,e56f88e,cd4722a,db2a1a6,6a4a607,2499c00,de53c27,d580530,a6077b7,5bd713b,5c0a994,d3f5000,682ebf6,11c83d5,dd6205e,97ade4e,8ae87fa,fe73073,2ca9e35,d1aee64,20f40eb,7adffbb,e718b91,9a9085e,35806cb,2fed0ad,823a389,6fea510,9a83d42,703b0a1,bfce5b6,95c6e7c,2447071,ff35b8c,59421d0,501b207,3143101,2829b0e,e053569,d9245dd,ab1727d,4fc17c6,a9ad47d,358c711,dbdfaee,cf0ca8b,2ded35c,875a657,d3e8ec7,ddb7721,d1aee64,d58fe2a,7662736,5e88354,5bb592a,bd508a2,6f5eadb,578cb67,4278b9d,2ac8cf1,1283717,875a657,2b9f9a5,307b711,45c1d16,dc10589,339da0b,34ee1d1,8c61247,a9f392e,fdd2201,5c56910,b7ff751,0811cda,1e31034,17444a7,a7cc444,3cdaaa8,3be96ae,852110d,b63456b,f156ad0,580452a,4303017]:v1.39.0Compare Source
Minor Changes
Observational memory's
'auto'model can now follow the credentials a request can actually use. PasscanUseProviderin the observational memory config to decide whether'auto'prefers Gemini, instead of relying onGOOGLE_GENERATIVE_AI_API_KEYin the server environment: (#26666)Support embedding specification v4 models from AI SDK v7. Core accepts v4 embedding models and exports
embedV4; Memory and RAG use the matching SDK to generate embeddings while preserving v1, v2, and v3 behavior. (#27710)Patch Changes
Fixed Gemini 3 agents with working memory failing with "Function call is missing a thought_signature" when continuing a turn (for example after a client tool result). Gemini signs only the first tool call in a parallel step; when that call was
updateWorkingMemory, removing it from saved history left the step without a signed first call. The next tool call in the step is now saved with Google's documentedskip_thought_signature_validatorsignature, so the step replays on any Gemini client. (#27787)Fixed observational memory preserving assistant message identity during feedback continuations. (#26346)
Moving a thread to another resource with
memory.updateThreadResourceId()now also moves the thread's observational memory recall entries. Before, recall search under the new resource could not find observations the thread made before the move. (#27336)Fixed Subconscious reminders never reaching the main agent in
AgentControllersessions. Reminder checks, memory questions and their follow-ups now run on the reminder's own thread. (#27558)Fixed observational memory set to
'auto'sometimes callinggoogle/gemini-2.5-flashwithout a Google key. When a turn crossed the observation threshold and observed right away, the observer lost track of the main model and fell back to Gemini, so turns failed for accounts without Google withCould not find API key … google/gemini-2.5-flash. That observation now uses the step's main model, as the other observation paths already did. WhencanUseProvideris set and no main model can be found,'auto'now fails with a clear error instead of picking a Gemini model it cannot call. (#27449)Observational memory now aborts and retries an Observer, Reflector, or extraction model call that produces no output for 5 minutes. Before, a provider that accepted the request but never answered could stall the call indefinitely, holding up the thread's observation work. The limit measure
Configuration
📅 Schedule: (in timezone America/Los_Angeles)
* * * * 1-5)🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.