@mastra/server 0.0.0-playground-studio-cloud-20251031080052 → 0.0.0-playground-studio-again-20251114102707

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/CHANGELOG.md +685 -3
  2. package/README.md +1 -1
  3. package/dist/{chunk-7HCPO76Z.js → chunk-2IS5WICF.js} +4505 -1017
  4. package/dist/chunk-2IS5WICF.js.map +1 -0
  5. package/dist/{chunk-SPRRK3P7.cjs → chunk-2YZH5PH6.cjs} +47 -47
  6. package/dist/chunk-2YZH5PH6.cjs.map +1 -0
  7. package/dist/{chunk-BATEJLED.js → chunk-3AMNUUZF.js} +20 -20
  8. package/dist/chunk-3AMNUUZF.js.map +1 -0
  9. package/dist/{chunk-AW5BU3RQ.js → chunk-3F52QCI4.js} +40 -40
  10. package/dist/chunk-3F52QCI4.js.map +1 -0
  11. package/dist/{chunk-7NADHFD2.cjs → chunk-64ITUOXI.cjs} +2 -2
  12. package/dist/chunk-64ITUOXI.cjs.map +1 -0
  13. package/dist/{chunk-MMROOK5J.js → chunk-6QWQZI4Q.js} +2 -2
  14. package/dist/{chunk-7NADHFD2.cjs.map → chunk-6QWQZI4Q.js.map} +1 -1
  15. package/dist/{chunk-ABRFV4XP.js → chunk-73PAWDM5.js} +13 -13
  16. package/dist/chunk-73PAWDM5.js.map +1 -0
  17. package/dist/{chunk-2S4IMB6E.cjs → chunk-A24TSVEZ.cjs} +39 -39
  18. package/dist/chunk-A24TSVEZ.cjs.map +1 -0
  19. package/dist/{chunk-QQXMIP6C.js → chunk-B3Z6J745.js} +17 -17
  20. package/dist/chunk-B3Z6J745.js.map +1 -0
  21. package/dist/{chunk-G4PUALCE.cjs → chunk-BTWIR2B7.cjs} +4 -4
  22. package/dist/{chunk-G4PUALCE.cjs.map → chunk-BTWIR2B7.cjs.map} +1 -1
  23. package/dist/{chunk-KSFLUEWV.js → chunk-D7T74TVR.js} +4 -5
  24. package/dist/chunk-D7T74TVR.js.map +1 -0
  25. package/dist/{chunk-YSHNCC6F.cjs → chunk-EHACNWDL.cjs} +169 -201
  26. package/dist/chunk-EHACNWDL.cjs.map +1 -0
  27. package/dist/{chunk-MN2TZQ7I.js → chunk-FPBYKMIS.js} +13 -13
  28. package/dist/chunk-FPBYKMIS.js.map +1 -0
  29. package/dist/{chunk-3SNGNFUJ.cjs → chunk-GLAZTMX3.cjs} +37 -37
  30. package/dist/chunk-GLAZTMX3.cjs.map +1 -0
  31. package/dist/{chunk-KDUHLUK4.cjs → chunk-ID6JYDNL.cjs} +4387 -896
  32. package/dist/chunk-ID6JYDNL.cjs.map +1 -0
  33. package/dist/{chunk-TRGAMKHX.cjs → chunk-KF3RI45U.cjs} +46 -41
  34. package/dist/chunk-KF3RI45U.cjs.map +1 -0
  35. package/dist/{chunk-K5T5A3AL.cjs → chunk-KJIDZQRA.cjs} +14 -14
  36. package/dist/chunk-KJIDZQRA.cjs.map +1 -0
  37. package/dist/{chunk-MYR4PVGN.js → chunk-KWH5QBXP.js} +4 -4
  38. package/dist/{chunk-MYR4PVGN.js.map → chunk-KWH5QBXP.js.map} +1 -1
  39. package/dist/{chunk-AHB4JCIQ.js → chunk-ND5OKOMT.js} +31 -26
  40. package/dist/chunk-ND5OKOMT.js.map +1 -0
  41. package/dist/{chunk-XN74I6VW.cjs → chunk-PPMIB3FQ.cjs} +20 -20
  42. package/dist/chunk-PPMIB3FQ.cjs.map +1 -0
  43. package/dist/{chunk-EP3JQDPD.cjs → chunk-S54HNARD.cjs} +18 -18
  44. package/dist/{chunk-EP3JQDPD.cjs.map → chunk-S54HNARD.cjs.map} +1 -1
  45. package/dist/{chunk-4QCXUEAT.js → chunk-SZIFSF4T.js} +3 -3
  46. package/dist/{chunk-4QCXUEAT.js.map → chunk-SZIFSF4T.js.map} +1 -1
  47. package/dist/{chunk-Y7SH5ZKM.cjs → chunk-U7GLIXYO.cjs} +157 -172
  48. package/dist/chunk-U7GLIXYO.cjs.map +1 -0
  49. package/dist/{chunk-CY4TP3FK.js → chunk-UXGQZUYZ.js} +3 -3
  50. package/dist/{chunk-CY4TP3FK.js.map → chunk-UXGQZUYZ.js.map} +1 -1
  51. package/dist/{chunk-RE4RPXT2.cjs → chunk-V5WWQN7P.cjs} +4 -4
  52. package/dist/{chunk-RE4RPXT2.cjs.map → chunk-V5WWQN7P.cjs.map} +1 -1
  53. package/dist/{chunk-OGK26QPW.js → chunk-V6JYJS7O.js} +109 -123
  54. package/dist/chunk-V6JYJS7O.js.map +1 -0
  55. package/dist/{chunk-CJFKRVED.cjs → chunk-W2KMU354.cjs} +4 -5
  56. package/dist/chunk-W2KMU354.cjs.map +1 -0
  57. package/dist/{chunk-B7QWVGQQ.cjs → chunk-X3MICMI2.cjs} +140 -249
  58. package/dist/chunk-X3MICMI2.cjs.map +1 -0
  59. package/dist/{chunk-6VPAV4ZV.js → chunk-Z2O5YVHY.js} +134 -165
  60. package/dist/chunk-Z2O5YVHY.js.map +1 -0
  61. package/dist/{chunk-ZLBL4NQC.js → chunk-ZJ6KEY6H.js} +67 -174
  62. package/dist/chunk-ZJ6KEY6H.js.map +1 -0
  63. package/dist/server/handlers/a2a.cjs +7 -7
  64. package/dist/server/handlers/a2a.d.ts +10 -10
  65. package/dist/server/handlers/a2a.d.ts.map +1 -1
  66. package/dist/server/handlers/a2a.js +1 -1
  67. package/dist/server/handlers/agent-builder.cjs +31 -19
  68. package/dist/server/handlers/agent-builder.d.ts +38 -47
  69. package/dist/server/handlers/agent-builder.d.ts.map +1 -1
  70. package/dist/server/handlers/agent-builder.js +1 -1
  71. package/dist/server/handlers/agents.cjs +25 -29
  72. package/dist/server/handlers/agents.d.ts +41 -55
  73. package/dist/server/handlers/agents.d.ts.map +1 -1
  74. package/dist/server/handlers/agents.js +1 -1
  75. package/dist/server/handlers/error.cjs +2 -2
  76. package/dist/server/handlers/error.js +1 -1
  77. package/dist/server/handlers/logs.cjs +7 -7
  78. package/dist/server/handlers/logs.d.ts +3 -3
  79. package/dist/server/handlers/logs.d.ts.map +1 -1
  80. package/dist/server/handlers/logs.js +1 -1
  81. package/dist/server/handlers/memory.cjs +19 -23
  82. package/dist/server/handlers/memory.d.ts +30 -35
  83. package/dist/server/handlers/memory.d.ts.map +1 -1
  84. package/dist/server/handlers/memory.js +1 -1
  85. package/dist/server/handlers/observability.cjs +8 -8
  86. package/dist/server/handlers/observability.d.ts +12 -12
  87. package/dist/server/handlers/observability.d.ts.map +1 -1
  88. package/dist/server/handlers/observability.js +1 -1
  89. package/dist/server/handlers/scores.cjs +11 -11
  90. package/dist/server/handlers/scores.d.ts +24 -24
  91. package/dist/server/handlers/scores.d.ts.map +1 -1
  92. package/dist/server/handlers/scores.js +1 -1
  93. package/dist/server/handlers/tools.cjs +7 -7
  94. package/dist/server/handlers/tools.d.ts +8 -8
  95. package/dist/server/handlers/tools.d.ts.map +1 -1
  96. package/dist/server/handlers/tools.js +1 -1
  97. package/dist/server/handlers/utils.cjs +3 -3
  98. package/dist/server/handlers/utils.js +1 -1
  99. package/dist/server/handlers/vector.cjs +7 -7
  100. package/dist/server/handlers/vector.js +1 -1
  101. package/dist/server/handlers/voice.cjs +5 -5
  102. package/dist/server/handlers/voice.d.ts +6 -6
  103. package/dist/server/handlers/voice.js +1 -1
  104. package/dist/server/handlers/workflows.cjs +21 -29
  105. package/dist/server/handlers/workflows.d.ts +27 -36
  106. package/dist/server/handlers/workflows.d.ts.map +1 -1
  107. package/dist/server/handlers/workflows.js +1 -1
  108. package/dist/server/handlers.cjs +23 -28
  109. package/dist/server/handlers.d.ts +0 -1
  110. package/dist/server/handlers.d.ts.map +1 -1
  111. package/dist/server/handlers.js +11 -12
  112. package/dist/server/http-exception.d.ts +0 -5
  113. package/dist/server/http-exception.d.ts.map +1 -1
  114. package/dist/server/utils.d.ts +3 -2
  115. package/dist/server/utils.d.ts.map +1 -1
  116. package/package.json +13 -8
  117. package/dist/chunk-2S4IMB6E.cjs.map +0 -1
  118. package/dist/chunk-3SNGNFUJ.cjs.map +0 -1
  119. package/dist/chunk-6VPAV4ZV.js.map +0 -1
  120. package/dist/chunk-7HCPO76Z.js.map +0 -1
  121. package/dist/chunk-ABRFV4XP.js.map +0 -1
  122. package/dist/chunk-AHB4JCIQ.js.map +0 -1
  123. package/dist/chunk-AW5BU3RQ.js.map +0 -1
  124. package/dist/chunk-B7QWVGQQ.cjs.map +0 -1
  125. package/dist/chunk-BATEJLED.js.map +0 -1
  126. package/dist/chunk-CJFKRVED.cjs.map +0 -1
  127. package/dist/chunk-I3C4ODGV.cjs +0 -335
  128. package/dist/chunk-I3C4ODGV.cjs.map +0 -1
  129. package/dist/chunk-K5T5A3AL.cjs.map +0 -1
  130. package/dist/chunk-KDUHLUK4.cjs.map +0 -1
  131. package/dist/chunk-KSFLUEWV.js.map +0 -1
  132. package/dist/chunk-LLUOPR3J.js +0 -323
  133. package/dist/chunk-LLUOPR3J.js.map +0 -1
  134. package/dist/chunk-MMROOK5J.js.map +0 -1
  135. package/dist/chunk-MN2TZQ7I.js.map +0 -1
  136. package/dist/chunk-OGK26QPW.js.map +0 -1
  137. package/dist/chunk-QQXMIP6C.js.map +0 -1
  138. package/dist/chunk-SPRRK3P7.cjs.map +0 -1
  139. package/dist/chunk-TRGAMKHX.cjs.map +0 -1
  140. package/dist/chunk-XN74I6VW.cjs.map +0 -1
  141. package/dist/chunk-Y7SH5ZKM.cjs.map +0 -1
  142. package/dist/chunk-YSHNCC6F.cjs.map +0 -1
  143. package/dist/chunk-ZLBL4NQC.js.map +0 -1
  144. package/dist/server/handlers/legacyWorkflows.cjs +0 -48
  145. package/dist/server/handlers/legacyWorkflows.cjs.map +0 -1
  146. package/dist/server/handlers/legacyWorkflows.d.ts +0 -59
  147. package/dist/server/handlers/legacyWorkflows.d.ts.map +0 -1
  148. package/dist/server/handlers/legacyWorkflows.js +0 -3
  149. package/dist/server/handlers/legacyWorkflows.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,11 +1,613 @@
1
1
  # @mastra/server
2
2
 
3
- ## 0.0.0-playground-studio-cloud-20251031080052
3
+ ## 0.0.0-playground-studio-again-20251114102707
4
4
 
5
5
  ### Major Changes
6
6
 
7
+ - Moving scorers under the eval domain, api method consistency, prebuilt evals, scorers require ids. ([#9589](https://github.com/mastra-ai/mastra/pull/9589))
8
+
9
+ - Every Mastra primitive (agent, MCPServer, workflow, tool, processor, scorer, and vector) now has a get, list, and add method associated with it. Each primitive also now requires an id to be set. ([#9675](https://github.com/mastra-ai/mastra/pull/9675))
10
+
11
+ Primitives that are added to other primitives are also automatically added to the Mastra instance
12
+
13
+ - Update handlers to use `listWorkflowRuns` instead of `getWorkflowRuns`. Fix type names from `StoragelistThreadsByResourceIdInput/Output` to `StorageListThreadsByResourceIdInput/Output`. ([#9507](https://github.com/mastra-ai/mastra/pull/9507))
14
+
15
+ - **BREAKING:** Remove `getMessagesPaginated()` and add `perPage: false` support ([#9670](https://github.com/mastra-ai/mastra/pull/9670))
16
+
17
+ Removes deprecated `getMessagesPaginated()` method. The `listMessages()` API and score handlers now support `perPage: false` to fetch all records without pagination limits.
18
+
19
+ **Storage changes:**
20
+ - `StoragePagination.perPage` type changed from `number` to `number | false`
21
+ - All storage implementations support `perPage: false`:
22
+ - Memory: `listMessages()`
23
+ - Scores: `listScoresBySpan()`, `listScoresByRunId()`, `listScoresByExecutionId()`
24
+ - HTTP query parser accepts `"false"` string (e.g., `?perPage=false`)
25
+
26
+ **Memory changes:**
27
+ - `memory.query()` parameter type changed from `StorageGetMessagesArg` to `StorageListMessagesInput`
28
+ - Uses flat parameters (`page`, `perPage`, `include`, `filter`, `vectorSearchString`) instead of `selectBy` object
29
+
30
+ **Stricter validation:**
31
+ - `listMessages()` requires non-empty, non-whitespace `threadId` (throws error instead of returning empty results)
32
+
33
+ **Migration:**
34
+
35
+ ```typescript
36
+ // Storage/Memory: Replace getMessagesPaginated with listMessages
37
+ - storage.getMessagesPaginated({ threadId, selectBy: { pagination: { page: 0, perPage: 20 } } })
38
+ + storage.listMessages({ threadId, page: 0, perPage: 20 })
39
+ + storage.listMessages({ threadId, page: 0, perPage: false }) // Fetch all
40
+
41
+ // Memory: Replace selectBy with flat parameters
42
+ - memory.query({ threadId, selectBy: { last: 20, include: [...] } })
43
+ + memory.query({ threadId, perPage: 20, include: [...] })
44
+
45
+ // Client SDK
46
+ - thread.getMessagesPaginated({ selectBy: { pagination: { page: 0 } } })
47
+ + thread.listMessages({ page: 0, perPage: 20 })
48
+ ```
49
+
50
+ - # Major Changes ([#9695](https://github.com/mastra-ai/mastra/pull/9695))
51
+
52
+ ## Storage Layer
53
+
54
+ ### BREAKING: Removed `storage.getMessages()`
55
+
56
+ The `getMessages()` method has been removed from all storage implementations. Use `listMessages()` instead, which provides pagination support.
57
+
58
+ **Migration:**
59
+
60
+ ```typescript
61
+ // Before
62
+ const messages = await storage.getMessages({ threadId: 'thread-1' });
63
+
64
+ // After
65
+ const result = await storage.listMessages({
66
+ threadId: 'thread-1',
67
+ page: 0,
68
+ perPage: 50,
69
+ });
70
+ const messages = result.messages; // Access messages array
71
+ console.log(result.total); // Total count
72
+ console.log(result.hasMore); // Whether more pages exist
73
+ ```
74
+
75
+ ### Message ordering default
76
+
77
+ `listMessages()` defaults to ASC (oldest first) ordering by `createdAt`, matching the previous `getMessages()` behavior.
78
+
79
+ **To use DESC ordering (newest first):**
80
+
81
+ ```typescript
82
+ const result = await storage.listMessages({
83
+ threadId: 'thread-1',
84
+ orderBy: { field: 'createdAt', direction: 'DESC' },
85
+ });
86
+ ```
87
+
88
+ ## Client SDK
89
+
90
+ ### BREAKING: Renamed `client.getThreadMessages()` → `client.listThreadMessages()`
91
+
92
+ **Migration:**
93
+
94
+ ```typescript
95
+ // Before
96
+ const response = await client.getThreadMessages(threadId, { agentId });
97
+
98
+ // After
99
+ const response = await client.listThreadMessages(threadId, { agentId });
100
+ ```
101
+
102
+ The response format remains the same.
103
+
104
+ ## Type Changes
105
+
106
+ ### BREAKING: Removed `StorageGetMessagesArg` type
107
+
108
+ Use `StorageListMessagesInput` instead:
109
+
110
+ ```typescript
111
+ // Before
112
+ import type { StorageGetMessagesArg } from '@mastra/core';
113
+
114
+ // After
115
+ import type { StorageListMessagesInput } from '@mastra/core';
116
+ ```
117
+
118
+ - Bump minimum required Node.js version to 22.13.0 ([#9706](https://github.com/mastra-ai/mastra/pull/9706))
119
+
120
+ - Replace `getThreadsByResourceIdPaginated` with `listThreadsByResourceId` across memory handlers. Update client SDK to use `listThreads()` with `offset`/`limit` parameters instead of deprecated `getMemoryThreads()`. Consolidate `/api/memory/threads` routes to single paginated endpoint. ([#9508](https://github.com/mastra-ai/mastra/pull/9508))
121
+
122
+ - This simplifies the Memory API by removing the confusing rememberMessages method and renaming query to recall for better clarity. ([#9701](https://github.com/mastra-ai/mastra/pull/9701))
123
+
124
+ The rememberMessages method name implied it might persist data when it was actually just retrieving messages, same as query. Having two methods that did essentially the same thing was unnecessary.
125
+
126
+ Before:
127
+
128
+ ```typescript
129
+ // Two methods that did the same thing
130
+ memory.rememberMessages({ threadId, resourceId, config, vectorMessageSearch });
131
+ memory.query({ threadId, resourceId, perPage, vectorSearchString });
132
+ ```
133
+
134
+ After:
135
+
136
+ ```typescript
137
+ // Single unified method with clear purpose
138
+ memory.recall({ threadId, resourceId, perPage, vectorMessageSearch, threadConfig });
139
+ ```
140
+
141
+ All usages have been updated across the codebase including tests. The agent now calls recall directly with the appropriate parameters.
142
+
143
+ - Rename RuntimeContext to RequestContext ([#9511](https://github.com/mastra-ai/mastra/pull/9511))
144
+
145
+ - Rename `defaultVNextStreamOptions` to `defaultOptions`. Add "Legacy" suffix to v1 option properties and methods (`defaultGenerateOptions` → `defaultGenerateOptionsLegacy`, `defaultStreamOptions` → `defaultStreamOptionsLegacy`). ([#9535](https://github.com/mastra-ai/mastra/pull/9535))
146
+
147
+ - Remove `getThreadsByResourceId` and `getThreadsByResourceIdPaginated` methods from storage interfaces in favor of `listThreadsByResourceId`. The new method uses `offset`/`limit` pagination and a nested `orderBy` object structure (`{ field, direction }`). ([#9536](https://github.com/mastra-ai/mastra/pull/9536))
148
+
149
+ - Renamed a bunch of observability/tracing-related things to drop the AI prefix. ([#9744](https://github.com/mastra-ai/mastra/pull/9744))
150
+
151
+ - **Breaking Change**: Remove legacy v1 watch events and consolidate on v2 implementation. ([#9252](https://github.com/mastra-ai/mastra/pull/9252))
152
+
153
+ This change simplifies the workflow watching API by removing the legacy v1 event system and promoting v2 as the standard (renamed to just `watch`).
154
+
155
+ ### What's Changed
156
+ - Removed legacy v1 watch event handlers and types
157
+ - Renamed `watch-v2` to `watch` throughout the codebase
158
+ - Removed `.watch()` method from client-js SDK (`Workflow` and `AgentBuilder` classes)
159
+ - Removed `/watch` HTTP endpoints from server and deployer
160
+ - Removed `WorkflowWatchResult` and v1 `WatchEvent` types
161
+
162
+ - **BREAKING CHANGE**: Pagination APIs now use `page`/`perPage` instead of `offset`/`limit` ([#9592](https://github.com/mastra-ai/mastra/pull/9592))
163
+
164
+ All storage and memory pagination APIs have been updated to use `page` (0-indexed) and `perPage` instead of `offset` and `limit`, aligning with standard REST API patterns.
165
+
166
+ **Affected APIs:**
167
+ - `Memory.listThreadsByResourceId()`
168
+ - `Memory.listMessages()`
169
+ - `Storage.listWorkflowRuns()`
170
+
171
+ **Migration:**
172
+
173
+ ```typescript
174
+ // Before
175
+ await memory.listThreadsByResourceId({
176
+ resourceId: 'user-123',
177
+ offset: 20,
178
+ limit: 10,
179
+ });
180
+
181
+ // After
182
+ await memory.listThreadsByResourceId({
183
+ resourceId: 'user-123',
184
+ page: 2, // page = Math.floor(offset / limit)
185
+ perPage: 10,
186
+ });
187
+
188
+ // Before
189
+ await memory.listMessages({
190
+ threadId: 'thread-456',
191
+ offset: 20,
192
+ limit: 10,
193
+ });
194
+
195
+ // After
196
+ await memory.listMessages({
197
+ threadId: 'thread-456',
198
+ page: 2,
199
+ perPage: 10,
200
+ });
201
+
202
+ // Before
203
+ await storage.listWorkflowRuns({
204
+ workflowName: 'my-workflow',
205
+ offset: 20,
206
+ limit: 10,
207
+ });
208
+
209
+ // After
210
+ await storage.listWorkflowRuns({
211
+ workflowName: 'my-workflow',
212
+ page: 2,
213
+ perPage: 10,
214
+ });
215
+ ```
216
+
217
+ **Additional improvements:**
218
+ - Added validation for negative `page` values in all storage implementations
219
+ - Improved `perPage` validation to handle edge cases (negative values, `0`, `false`)
220
+ - Added reusable query parser utilities for consistent validation in handlers
221
+
222
+ - Changing getAgents -> listAgents, getTools -> listTools, getWorkflows -> listWorkflows ([#9495](https://github.com/mastra-ai/mastra/pull/9495))
223
+
224
+ - Removed old tracing code based on OpenTelemetry ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
225
+
226
+ - Remove deprecated vector prompts and cohere provider from code ([#9596](https://github.com/mastra-ai/mastra/pull/9596))
227
+
228
+ - Mark as stable ([`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc))
229
+
230
+ - Enforcing id required on Processor primitive ([#9591](https://github.com/mastra-ai/mastra/pull/9591))
231
+
232
+ - Renamed `MastraMessageV2` to `MastraDBMessage` ([#9255](https://github.com/mastra-ai/mastra/pull/9255))
233
+ Made the return format of all methods that return db messages consistent. It's always `{ messages: MastraDBMessage[] }` now, and messages can be converted after that using `@mastra/ai-sdk/ui`'s `toAISdkV4/5Messages()` function
234
+
235
+ - moved ai-tracing code into @mastra/observability ([#9661](https://github.com/mastra-ai/mastra/pull/9661))
236
+
237
+ - Remove legacy evals from Mastra ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
238
+
239
+ ### Minor Changes
240
+
241
+ - Update peer dependencies to match core package version bump (1.0.0) ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
242
+
243
+ - **BREAKING CHANGE**: Memory scope defaults changed from 'thread' to 'resource' ([#8983](https://github.com/mastra-ai/mastra/pull/8983))
244
+
245
+ Both `workingMemory.scope` and `semanticRecall.scope` now default to `'resource'` instead of `'thread'`. This means:
246
+ - Working memory persists across all conversations for the same user/resource
247
+ - Semantic recall searches across all threads for the same user/resource
248
+
249
+ **Migration**: To maintain the previous thread-scoped behavior, explicitly set `scope: 'thread'`:
250
+
251
+ ```typescript
252
+ memory: new Memory({
253
+ storage,
254
+ workingMemory: {
255
+ enabled: true,
256
+ scope: 'thread', // Explicitly set for thread-scoped behavior
257
+ },
258
+ semanticRecall: {
259
+ scope: 'thread', // Explicitly set for thread-scoped behavior
260
+ },
261
+ }),
262
+ ```
263
+
264
+ See the [migration guide](https://mastra.ai/docs/guides/migrations/memory-scope-defaults) for more details.
265
+
266
+ Also fixed issues where playground semantic recall search could show missing or incorrect results in certain cases.
267
+
268
+ - Update peer dependencies to match core package version bump (1.0.0) ([#9495](https://github.com/mastra-ai/mastra/pull/9495))
269
+
270
+ - Update peer dependencies to match core package version bump (0.22.1) ([#8649](https://github.com/mastra-ai/mastra/pull/8649))
271
+
272
+ - Add observeStream support for agent-builder template installation ([#9372](https://github.com/mastra-ai/mastra/pull/9372))
273
+ - Add observeStream, observeStreamVNext, observeStreamLegacy, and resumeStream methods to agent-builder client SDK
274
+ - Add corresponding server handlers and deployer routes for observe streaming
275
+ - Add tracingOptions parameter to existing agent-builder handlers for parity with workflows
276
+ - Update template installation processor to support both legacy and VNext streaming event formats
277
+
278
+ - Update peer dependencies to match core package version bump (0.22.0) ([#8983](https://github.com/mastra-ai/mastra/pull/8983))
279
+
280
+ - Update peer dependencies to match core package version bump (1.0.0) ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
281
+
282
+ ### Patch Changes
283
+
284
+ - Make step optional in all resume APIs ([#9454](https://github.com/mastra-ai/mastra/pull/9454))
285
+
286
+ - Fix semantic search endpoint to return results in the correct format. Also fix the delete messages endpoint to properly normalize ids in the expected format. ([#10032](https://github.com/mastra-ai/mastra/pull/10032))
287
+
288
+ - Add agent id to the list agent ([#9770](https://github.com/mastra-ai/mastra/pull/9770))
289
+
290
+ - Update tool execution signature ([#9587](https://github.com/mastra-ai/mastra/pull/9587))
291
+
292
+ Consolidated the 3 different execution contexts to one
293
+
294
+ ```typescript
295
+ // before depending on the context the tool was executed in
296
+ tool.execute({ context: data });
297
+ tool.execute({ context: { inputData: data } });
298
+ tool.execute(data);
299
+
300
+ // now, for all contexts
301
+ tool.execute(data, context);
302
+ ```
303
+
304
+ **Before:**
305
+
306
+ ```typescript
307
+ inputSchema: z.object({ something: z.string() }),
308
+ execute: async ({ context, tracingContext, runId, ... }) => {
309
+ return doSomething(context.string);
310
+ }
311
+ ```
312
+
313
+ **After:**
314
+
315
+ ```typescript
316
+ inputSchema: z.object({ something: z.string() }),
317
+ execute: async (inputData, context) => {
318
+ const { agent, mcp, workflow, ...sharedContext } = context
319
+
320
+ // context that only an agent would get like toolCallId, messages, suspend, resume, etc
321
+ if (agent) {
322
+ doSomething(inputData.something, agent)
323
+ // context that only a workflow would get like runId, state, suspend, resume, etc
324
+ } else if (workflow) {
325
+ doSomething(inputData.something, workflow)
326
+ // context that only a workflow would get like "extra", "elicitation"
327
+ } else if (mcp) {
328
+ doSomething(inputData.something, mcp)
329
+ } else {
330
+ // Running a tool in no execution context
331
+ return doSomething(inputData.something);
332
+ }
333
+ }
334
+ ```
335
+
336
+ - Add the description field to listAgents ([#9672](https://github.com/mastra-ai/mastra/pull/9672))
337
+
338
+ - Fix the link issue in observability ([#9764](https://github.com/mastra-ai/mastra/pull/9764))
339
+
340
+ - Add tool call approval ([#8649](https://github.com/mastra-ai/mastra/pull/8649))
341
+
342
+ - Fix scorers listing filtring ([#9801](https://github.com/mastra-ai/mastra/pull/9801))
343
+
344
+ - Fixes issue where clicking the reset button in the model picker would fail to restore the original LanguageModelV2 (or any other types) object that was passed during agent construction. ([#9481](https://github.com/mastra-ai/mastra/pull/9481))
345
+
346
+ - Update peer dependencies to match core package version bump (1.0.0) ([#9489](https://github.com/mastra-ai/mastra/pull/9489))
347
+
348
+ - Fix undefined runtimeContext using memory from playground ([#9328](https://github.com/mastra-ai/mastra/pull/9328))
349
+
350
+ - Make step optional in resumeStreamVNext API ([#9453](https://github.com/mastra-ai/mastra/pull/9453))
351
+
352
+ - Remove `waitForEvent` from workflows. `waitForEvent` is now removed, please use suspend & resume flow instead. See https://mastra.ai/en/docs/workflows/suspend-and-resume for more details on suspend & resume flow. ([#9214](https://github.com/mastra-ai/mastra/pull/9214))
353
+
354
+ - Use memory mock in server tests ([#9486](https://github.com/mastra-ai/mastra/pull/9486))
355
+
356
+ - Remove format from stream/generate ([#9577](https://github.com/mastra-ai/mastra/pull/9577))
357
+
358
+ - Updated dependencies [[`39c9743`](https://github.com/mastra-ai/mastra/commit/39c97432d084294f8ba85fbf3ef28098ff21459e), [`f743dbb`](https://github.com/mastra-ai/mastra/commit/f743dbb8b40d1627b5c10c0e6fc154f4ebb6e394), [`fec5129`](https://github.com/mastra-ai/mastra/commit/fec5129de7fc64423ea03661a56cef31dc747a0d), [`0491e7c`](https://github.com/mastra-ai/mastra/commit/0491e7c9b714cb0ba22187ee062147ec2dd7c712), [`f6f4903`](https://github.com/mastra-ai/mastra/commit/f6f4903397314f73362061dc5a3e8e7c61ea34aa), [`0e8ed46`](https://github.com/mastra-ai/mastra/commit/0e8ed467c54d6901a6a365f270ec15d6faadb36c), [`6c049d9`](https://github.com/mastra-ai/mastra/commit/6c049d94063fdcbd5b81c4912a2bf82a92c9cc0b), [`910db9e`](https://github.com/mastra-ai/mastra/commit/910db9e0312888495eb5617b567f247d03303814), [`2f897df`](https://github.com/mastra-ai/mastra/commit/2f897df208508f46f51b7625e5dd20c37f93e0e3), [`08c31c1`](https://github.com/mastra-ai/mastra/commit/08c31c188ebccd598acaf55e888b6397d01f7eae), [`3443770`](https://github.com/mastra-ai/mastra/commit/3443770662df8eb24c9df3589b2792d78cfcb811), [`f0a07e0`](https://github.com/mastra-ai/mastra/commit/f0a07e0111b3307c5fabfa4094c5c2cfb734fbe6), [`aaa40e7`](https://github.com/mastra-ai/mastra/commit/aaa40e788628b319baa8e889407d11ad626547fa), [`1521d71`](https://github.com/mastra-ai/mastra/commit/1521d716e5daedc74690c983fbd961123c56756b), [`9e1911d`](https://github.com/mastra-ai/mastra/commit/9e1911db2b4db85e0e768c3f15e0d61e319869f6), [`ebac155`](https://github.com/mastra-ai/mastra/commit/ebac15564a590117db7078233f927a7e28a85106), [`dd1c38d`](https://github.com/mastra-ai/mastra/commit/dd1c38d1b75f1b695c27b40d8d9d6ed00d5e0f6f), [`5948e6a`](https://github.com/mastra-ai/mastra/commit/5948e6a5146c83666ba3f294b2be576c82a513fb), [`8940859`](https://github.com/mastra-ai/mastra/commit/89408593658199b4ad67f7b65e888f344e64a442), [`e629310`](https://github.com/mastra-ai/mastra/commit/e629310f1a73fa236d49ec7a1d1cceb6229dc7cc), [`4c6b492`](https://github.com/mastra-ai/mastra/commit/4c6b492c4dd591c6a592520c1f6855d6e936d71f), [`dff01d8`](https://github.com/mastra-ai/mastra/commit/dff01d81ce1f4e4087cfac20fa868e6db138dd14), [`9d819d5`](https://github.com/mastra-ai/mastra/commit/9d819d54b61481639f4008e4694791bddf187edd), [`71c8d6c`](https://github.com/mastra-ai/mastra/commit/71c8d6c161253207b2b9588bdadb7eed604f7253), [`6179a9b`](https://github.com/mastra-ai/mastra/commit/6179a9ba36ffac326de3cc3c43cdc8028d37c251), [`00f4921`](https://github.com/mastra-ai/mastra/commit/00f4921dd2c91a1e5446799599ef7116a8214a1a), [`ca8041c`](https://github.com/mastra-ai/mastra/commit/ca8041cce0379fda22ed293a565bcb5b6ddca68a), [`7051bf3`](https://github.com/mastra-ai/mastra/commit/7051bf38b3b122a069008f861f7bfc004a6d9f6e), [`a8f1494`](https://github.com/mastra-ai/mastra/commit/a8f1494f4bbdc2770bcf327d4c7d869e332183f1), [`0793497`](https://github.com/mastra-ai/mastra/commit/079349753620c40246ffd673e3f9d7d9820beff3), [`5df9cce`](https://github.com/mastra-ai/mastra/commit/5df9cce1a753438413f64c11eeef8f845745c2a8), [`a854ede`](https://github.com/mastra-ai/mastra/commit/a854ede62bf5ac0945a624ac48913dd69c73aabf), [`c576fc0`](https://github.com/mastra-ai/mastra/commit/c576fc0b100b2085afded91a37c97a0ea0ec09c7), [`3defc80`](https://github.com/mastra-ai/mastra/commit/3defc80cf2b88a1b7fc1cc4ddcb91e982a614609), [`16153fe`](https://github.com/mastra-ai/mastra/commit/16153fe7eb13c99401f48e6ca32707c965ee28b9), [`9f4a683`](https://github.com/mastra-ai/mastra/commit/9f4a6833e88b52574665c028fd5508ad5c2f6004), [`bc94344`](https://github.com/mastra-ai/mastra/commit/bc943444a1342d8a662151b7bce1df7dae32f59c), [`57d157f`](https://github.com/mastra-ai/mastra/commit/57d157f0b163a95c3e6c9eae31bdb11d1bfc64f9), [`903f67d`](https://github.com/mastra-ai/mastra/commit/903f67d184504a273893818c02b961f5423a79ad), [`2a90c55`](https://github.com/mastra-ai/mastra/commit/2a90c55a86a9210697d5adaab5ee94584b079adc), [`eb09742`](https://github.com/mastra-ai/mastra/commit/eb09742197f66c4c38154c3beec78313e69760b2), [`23c10a1`](https://github.com/mastra-ai/mastra/commit/23c10a1efdd9a693c405511ab2dc8a1236603162), [`96d35f6`](https://github.com/mastra-ai/mastra/commit/96d35f61376bc2b1bf148648a2c1985bd51bef55), [`5cbe88a`](https://github.com/mastra-ai/mastra/commit/5cbe88aefbd9f933bca669fd371ea36bf939ac6d), [`a1bd7b8`](https://github.com/mastra-ai/mastra/commit/a1bd7b8571db16b94eb01588f451a74758c96d65), [`d78b38d`](https://github.com/mastra-ai/mastra/commit/d78b38d898fce285260d3bbb4befade54331617f), [`0633100`](https://github.com/mastra-ai/mastra/commit/0633100a911ad22f5256471bdf753da21c104742), [`c710c16`](https://github.com/mastra-ai/mastra/commit/c710c1652dccfdc4111c8412bca7a6bb1d48b441), [`354ad0b`](https://github.com/mastra-ai/mastra/commit/354ad0b7b1b8183ac567f236a884fc7ede6d7138), [`cfae733`](https://github.com/mastra-ai/mastra/commit/cfae73394f4920635e6c919c8e95ff9a0788e2e5), [`e3dfda7`](https://github.com/mastra-ai/mastra/commit/e3dfda7b11bf3b8c4bb55637028befb5f387fc74), [`844ea5d`](https://github.com/mastra-ai/mastra/commit/844ea5dc0c248961e7bf73629ae7dcff503e853c), [`398fde3`](https://github.com/mastra-ai/mastra/commit/398fde3f39e707cda79372cdae8f9870e3b57c8d), [`c10398d`](https://github.com/mastra-ai/mastra/commit/c10398d5b88f1d4af556f4267ff06f1d11e89179), [`f0f8f12`](https://github.com/mastra-ai/mastra/commit/f0f8f125c308f2d0fd36942ef652fd852df7522f), [`0d7618b`](https://github.com/mastra-ai/mastra/commit/0d7618bc650bf2800934b243eca5648f4aeed9c2), [`7b763e5`](https://github.com/mastra-ai/mastra/commit/7b763e52fc3eaf699c2a99f2adf418dd46e4e9a5), [`d36cfbb`](https://github.com/mastra-ai/mastra/commit/d36cfbbb6565ba5f827883cc9bb648eb14befdc1), [`3697853`](https://github.com/mastra-ai/mastra/commit/3697853deeb72017d90e0f38a93c1e29221aeca0), [`b2e45ec`](https://github.com/mastra-ai/mastra/commit/b2e45eca727a8db01a81ba93f1a5219c7183c839), [`d6d49f7`](https://github.com/mastra-ai/mastra/commit/d6d49f7b8714fa19a52ff9c7cf7fb7e73751901e), [`00c2387`](https://github.com/mastra-ai/mastra/commit/00c2387f5f04a365316f851e58666ac43f8c4edf), [`a534e95`](https://github.com/mastra-ai/mastra/commit/a534e9591f83b3cc1ebff99c67edf4cda7bf81d3), [`9d0e7fe`](https://github.com/mastra-ai/mastra/commit/9d0e7feca8ed98de959f53476ee1456073673348), [`53d927c`](https://github.com/mastra-ai/mastra/commit/53d927cc6f03bff33655b7e2b788da445a08731d), [`3f2faf2`](https://github.com/mastra-ai/mastra/commit/3f2faf2e2d685d6c053cc5af1bf9fedf267b2ce5), [`22f64bc`](https://github.com/mastra-ai/mastra/commit/22f64bc1d37149480b58bf2fefe35b79a1e3e7d5), [`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc), [`b7959e6`](https://github.com/mastra-ai/mastra/commit/b7959e6e25a46b480f9ea2217c4c6c588c423791), [`bda6370`](https://github.com/mastra-ai/mastra/commit/bda637009360649aaf579919e7873e33553c273e), [`d7acd8e`](https://github.com/mastra-ai/mastra/commit/d7acd8e987b5d7eff4fd98b0906c17c06a2e83d5), [`c7f1f7d`](https://github.com/mastra-ai/mastra/commit/c7f1f7d24f61f247f018cc2d1f33bf63212959a7), [`0bddc6d`](https://github.com/mastra-ai/mastra/commit/0bddc6d8dbd6f6008c0cba2e4960a2da75a55af1), [`735d8c1`](https://github.com/mastra-ai/mastra/commit/735d8c1c0d19fbc09e6f8b66cf41bc7655993838), [`acf322e`](https://github.com/mastra-ai/mastra/commit/acf322e0f1fd0189684cf529d91c694bea918a45), [`c942802`](https://github.com/mastra-ai/mastra/commit/c942802a477a925b01859a7b8688d4355715caaa), [`a0c8c1b`](https://github.com/mastra-ai/mastra/commit/a0c8c1b87d4fee252aebda73e8637fbe01d761c9), [`cc34739`](https://github.com/mastra-ai/mastra/commit/cc34739c34b6266a91bea561119240a7acf47887), [`c218bd3`](https://github.com/mastra-ai/mastra/commit/c218bd3759e32423735b04843a09404572631014), [`2c4438b`](https://github.com/mastra-ai/mastra/commit/2c4438b87817ab7eed818c7990fef010475af1a3), [`4d59f58`](https://github.com/mastra-ai/mastra/commit/4d59f58de2d90d6e2810a19d4518e38ddddb9038), [`2b8893c`](https://github.com/mastra-ai/mastra/commit/2b8893cb108ef9acb72ee7835cd625610d2c1a4a), [`8e5c75b`](https://github.com/mastra-ai/mastra/commit/8e5c75bdb1d08a42d45309a4c72def4b6890230f), [`e1bb9c9`](https://github.com/mastra-ai/mastra/commit/e1bb9c94b4eb68b019ae275981be3feb769b5365), [`e59e0d3`](https://github.com/mastra-ai/mastra/commit/e59e0d32afb5fcf2c9f3c00c8f81f6c21d3a63fa), [`465ac05`](https://github.com/mastra-ai/mastra/commit/465ac0526a91d175542091c675181f1a96c98c46), [`fa8409b`](https://github.com/mastra-ai/mastra/commit/fa8409bc39cfd8ba6643b9db5269b90b22e2a2f7), [`e7266a2`](https://github.com/mastra-ai/mastra/commit/e7266a278db02035c97a5e9cd9d1669a6b7a535d), [`173c535`](https://github.com/mastra-ai/mastra/commit/173c535c0645b0da404fe09f003778f0b0d4e019)]:
359
+ - @mastra/core@0.0.0-playground-studio-again-20251114102707
360
+
361
+ ## 1.0.0-beta.2
362
+
363
+ ### Patch Changes
364
+
365
+ - Updated dependencies [[`465ac05`](https://github.com/mastra-ai/mastra/commit/465ac0526a91d175542091c675181f1a96c98c46)]:
366
+ - @mastra/core@1.0.0-beta.2
367
+
368
+ ## 1.0.0-beta.1
369
+
370
+ ### Patch Changes
371
+
372
+ - Updated dependencies [[`910db9e`](https://github.com/mastra-ai/mastra/commit/910db9e0312888495eb5617b567f247d03303814), [`e7266a2`](https://github.com/mastra-ai/mastra/commit/e7266a278db02035c97a5e9cd9d1669a6b7a535d)]:
373
+ - @mastra/core@1.0.0-beta.1
374
+
375
+ ## 1.0.0-beta.0
376
+
377
+ ### Major Changes
378
+
379
+ - Moving scorers under the eval domain, api method consistency, prebuilt evals, scorers require ids. ([#9589](https://github.com/mastra-ai/mastra/pull/9589))
380
+
381
+ - Every Mastra primitive (agent, MCPServer, workflow, tool, processor, scorer, and vector) now has a get, list, and add method associated with it. Each primitive also now requires an id to be set. ([#9675](https://github.com/mastra-ai/mastra/pull/9675))
382
+
383
+ Primitives that are added to other primitives are also automatically added to the Mastra instance
384
+
385
+ - Update handlers to use `listWorkflowRuns` instead of `getWorkflowRuns`. Fix type names from `StoragelistThreadsByResourceIdInput/Output` to `StorageListThreadsByResourceIdInput/Output`. ([#9507](https://github.com/mastra-ai/mastra/pull/9507))
386
+
387
+ - **BREAKING:** Remove `getMessagesPaginated()` and add `perPage: false` support ([#9670](https://github.com/mastra-ai/mastra/pull/9670))
388
+
389
+ Removes deprecated `getMessagesPaginated()` method. The `listMessages()` API and score handlers now support `perPage: false` to fetch all records without pagination limits.
390
+
391
+ **Storage changes:**
392
+ - `StoragePagination.perPage` type changed from `number` to `number | false`
393
+ - All storage implementations support `perPage: false`:
394
+ - Memory: `listMessages()`
395
+ - Scores: `listScoresBySpan()`, `listScoresByRunId()`, `listScoresByExecutionId()`
396
+ - HTTP query parser accepts `"false"` string (e.g., `?perPage=false`)
397
+
398
+ **Memory changes:**
399
+ - `memory.query()` parameter type changed from `StorageGetMessagesArg` to `StorageListMessagesInput`
400
+ - Uses flat parameters (`page`, `perPage`, `include`, `filter`, `vectorSearchString`) instead of `selectBy` object
401
+
402
+ **Stricter validation:**
403
+ - `listMessages()` requires non-empty, non-whitespace `threadId` (throws error instead of returning empty results)
404
+
405
+ **Migration:**
406
+
407
+ ```typescript
408
+ // Storage/Memory: Replace getMessagesPaginated with listMessages
409
+ - storage.getMessagesPaginated({ threadId, selectBy: { pagination: { page: 0, perPage: 20 } } })
410
+ + storage.listMessages({ threadId, page: 0, perPage: 20 })
411
+ + storage.listMessages({ threadId, page: 0, perPage: false }) // Fetch all
412
+
413
+ // Memory: Replace selectBy with flat parameters
414
+ - memory.query({ threadId, selectBy: { last: 20, include: [...] } })
415
+ + memory.query({ threadId, perPage: 20, include: [...] })
416
+
417
+ // Client SDK
418
+ - thread.getMessagesPaginated({ selectBy: { pagination: { page: 0 } } })
419
+ + thread.listMessages({ page: 0, perPage: 20 })
420
+ ```
421
+
422
+ - # Major Changes ([#9695](https://github.com/mastra-ai/mastra/pull/9695))
423
+
424
+ ## Storage Layer
425
+
426
+ ### BREAKING: Removed `storage.getMessages()`
427
+
428
+ The `getMessages()` method has been removed from all storage implementations. Use `listMessages()` instead, which provides pagination support.
429
+
430
+ **Migration:**
431
+
432
+ ```typescript
433
+ // Before
434
+ const messages = await storage.getMessages({ threadId: 'thread-1' });
435
+
436
+ // After
437
+ const result = await storage.listMessages({
438
+ threadId: 'thread-1',
439
+ page: 0,
440
+ perPage: 50,
441
+ });
442
+ const messages = result.messages; // Access messages array
443
+ console.log(result.total); // Total count
444
+ console.log(result.hasMore); // Whether more pages exist
445
+ ```
446
+
447
+ ### Message ordering default
448
+
449
+ `listMessages()` defaults to ASC (oldest first) ordering by `createdAt`, matching the previous `getMessages()` behavior.
450
+
451
+ **To use DESC ordering (newest first):**
452
+
453
+ ```typescript
454
+ const result = await storage.listMessages({
455
+ threadId: 'thread-1',
456
+ orderBy: { field: 'createdAt', direction: 'DESC' },
457
+ });
458
+ ```
459
+
460
+ ## Client SDK
461
+
462
+ ### BREAKING: Renamed `client.getThreadMessages()` → `client.listThreadMessages()`
463
+
464
+ **Migration:**
465
+
466
+ ```typescript
467
+ // Before
468
+ const response = await client.getThreadMessages(threadId, { agentId });
469
+
470
+ // After
471
+ const response = await client.listThreadMessages(threadId, { agentId });
472
+ ```
473
+
474
+ The response format remains the same.
475
+
476
+ ## Type Changes
477
+
478
+ ### BREAKING: Removed `StorageGetMessagesArg` type
479
+
480
+ Use `StorageListMessagesInput` instead:
481
+
482
+ ```typescript
483
+ // Before
484
+ import type { StorageGetMessagesArg } from '@mastra/core';
485
+
486
+ // After
487
+ import type { StorageListMessagesInput } from '@mastra/core';
488
+ ```
489
+
490
+ - Bump minimum required Node.js version to 22.13.0 ([#9706](https://github.com/mastra-ai/mastra/pull/9706))
491
+
492
+ - Replace `getThreadsByResourceIdPaginated` with `listThreadsByResourceId` across memory handlers. Update client SDK to use `listThreads()` with `offset`/`limit` parameters instead of deprecated `getMemoryThreads()`. Consolidate `/api/memory/threads` routes to single paginated endpoint. ([#9508](https://github.com/mastra-ai/mastra/pull/9508))
493
+
494
+ - This simplifies the Memory API by removing the confusing rememberMessages method and renaming query to recall for better clarity. ([#9701](https://github.com/mastra-ai/mastra/pull/9701))
495
+
496
+ The rememberMessages method name implied it might persist data when it was actually just retrieving messages, same as query. Having two methods that did essentially the same thing was unnecessary.
497
+
498
+ Before:
499
+
500
+ ```typescript
501
+ // Two methods that did the same thing
502
+ memory.rememberMessages({ threadId, resourceId, config, vectorMessageSearch });
503
+ memory.query({ threadId, resourceId, perPage, vectorSearchString });
504
+ ```
505
+
506
+ After:
507
+
508
+ ```typescript
509
+ // Single unified method with clear purpose
510
+ memory.recall({ threadId, resourceId, perPage, vectorMessageSearch, threadConfig });
511
+ ```
512
+
513
+ All usages have been updated across the codebase including tests. The agent now calls recall directly with the appropriate parameters.
514
+
515
+ - Rename RuntimeContext to RequestContext ([#9511](https://github.com/mastra-ai/mastra/pull/9511))
516
+
517
+ - Rename `defaultVNextStreamOptions` to `defaultOptions`. Add "Legacy" suffix to v1 option properties and methods (`defaultGenerateOptions` → `defaultGenerateOptionsLegacy`, `defaultStreamOptions` → `defaultStreamOptionsLegacy`). ([#9535](https://github.com/mastra-ai/mastra/pull/9535))
518
+
519
+ - Remove `getThreadsByResourceId` and `getThreadsByResourceIdPaginated` methods from storage interfaces in favor of `listThreadsByResourceId`. The new method uses `offset`/`limit` pagination and a nested `orderBy` object structure (`{ field, direction }`). ([#9536](https://github.com/mastra-ai/mastra/pull/9536))
520
+
521
+ - Renamed a bunch of observability/tracing-related things to drop the AI prefix. ([#9744](https://github.com/mastra-ai/mastra/pull/9744))
522
+
523
+ - **Breaking Change**: Remove legacy v1 watch events and consolidate on v2 implementation. ([#9252](https://github.com/mastra-ai/mastra/pull/9252))
524
+
525
+ This change simplifies the workflow watching API by removing the legacy v1 event system and promoting v2 as the standard (renamed to just `watch`).
526
+
527
+ ### What's Changed
528
+ - Removed legacy v1 watch event handlers and types
529
+ - Renamed `watch-v2` to `watch` throughout the codebase
530
+ - Removed `.watch()` method from client-js SDK (`Workflow` and `AgentBuilder` classes)
531
+ - Removed `/watch` HTTP endpoints from server and deployer
532
+ - Removed `WorkflowWatchResult` and v1 `WatchEvent` types
533
+
534
+ - **BREAKING CHANGE**: Pagination APIs now use `page`/`perPage` instead of `offset`/`limit` ([#9592](https://github.com/mastra-ai/mastra/pull/9592))
535
+
536
+ All storage and memory pagination APIs have been updated to use `page` (0-indexed) and `perPage` instead of `offset` and `limit`, aligning with standard REST API patterns.
537
+
538
+ **Affected APIs:**
539
+ - `Memory.listThreadsByResourceId()`
540
+ - `Memory.listMessages()`
541
+ - `Storage.listWorkflowRuns()`
542
+
543
+ **Migration:**
544
+
545
+ ```typescript
546
+ // Before
547
+ await memory.listThreadsByResourceId({
548
+ resourceId: 'user-123',
549
+ offset: 20,
550
+ limit: 10,
551
+ });
552
+
553
+ // After
554
+ await memory.listThreadsByResourceId({
555
+ resourceId: 'user-123',
556
+ page: 2, // page = Math.floor(offset / limit)
557
+ perPage: 10,
558
+ });
559
+
560
+ // Before
561
+ await memory.listMessages({
562
+ threadId: 'thread-456',
563
+ offset: 20,
564
+ limit: 10,
565
+ });
566
+
567
+ // After
568
+ await memory.listMessages({
569
+ threadId: 'thread-456',
570
+ page: 2,
571
+ perPage: 10,
572
+ });
573
+
574
+ // Before
575
+ await storage.listWorkflowRuns({
576
+ workflowName: 'my-workflow',
577
+ offset: 20,
578
+ limit: 10,
579
+ });
580
+
581
+ // After
582
+ await storage.listWorkflowRuns({
583
+ workflowName: 'my-workflow',
584
+ page: 2,
585
+ perPage: 10,
586
+ });
587
+ ```
588
+
589
+ **Additional improvements:**
590
+ - Added validation for negative `page` values in all storage implementations
591
+ - Improved `perPage` validation to handle edge cases (negative values, `0`, `false`)
592
+ - Added reusable query parser utilities for consistent validation in handlers
593
+
594
+ - Changing getAgents -> listAgents, getTools -> listTools, getWorkflows -> listWorkflows ([#9495](https://github.com/mastra-ai/mastra/pull/9495))
595
+
7
596
  - Removed old tracing code based on OpenTelemetry ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
8
597
 
598
+ - Remove deprecated vector prompts and cohere provider from code ([#9596](https://github.com/mastra-ai/mastra/pull/9596))
599
+
600
+ - Mark as stable ([`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc))
601
+
602
+ - Enforcing id required on Processor primitive ([#9591](https://github.com/mastra-ai/mastra/pull/9591))
603
+
604
+ - Renamed `MastraMessageV2` to `MastraDBMessage` ([#9255](https://github.com/mastra-ai/mastra/pull/9255))
605
+ Made the return format of all methods that return db messages consistent. It's always `{ messages: MastraDBMessage[] }` now, and messages can be converted after that using `@mastra/ai-sdk/ui`'s `toAISdkV4/5Messages()` function
606
+
607
+ - moved ai-tracing code into @mastra/observability ([#9661](https://github.com/mastra-ai/mastra/pull/9661))
608
+
609
+ - Remove legacy evals from Mastra ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
610
+
9
611
  ### Minor Changes
10
612
 
11
613
  - Update peer dependencies to match core package version bump (1.0.0) ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
@@ -35,16 +637,96 @@
35
637
 
36
638
  Also fixed issues where playground semantic recall search could show missing or incorrect results in certain cases.
37
639
 
640
+ - Update peer dependencies to match core package version bump (1.0.0) ([#9495](https://github.com/mastra-ai/mastra/pull/9495))
641
+
38
642
  - Update peer dependencies to match core package version bump (0.22.1) ([#8649](https://github.com/mastra-ai/mastra/pull/8649))
39
643
 
644
+ - Add observeStream support for agent-builder template installation ([#9372](https://github.com/mastra-ai/mastra/pull/9372))
645
+ - Add observeStream, observeStreamVNext, observeStreamLegacy, and resumeStream methods to agent-builder client SDK
646
+ - Add corresponding server handlers and deployer routes for observe streaming
647
+ - Add tracingOptions parameter to existing agent-builder handlers for parity with workflows
648
+ - Update template installation processor to support both legacy and VNext streaming event formats
649
+
40
650
  - Update peer dependencies to match core package version bump (0.22.0) ([#8983](https://github.com/mastra-ai/mastra/pull/8983))
41
651
 
652
+ - Update peer dependencies to match core package version bump (1.0.0) ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
653
+
42
654
  ### Patch Changes
43
655
 
656
+ - Make step optional in all resume APIs ([#9454](https://github.com/mastra-ai/mastra/pull/9454))
657
+
658
+ - Add agent id to the list agent ([#9770](https://github.com/mastra-ai/mastra/pull/9770))
659
+
660
+ - Update tool execution signature ([#9587](https://github.com/mastra-ai/mastra/pull/9587))
661
+
662
+ Consolidated the 3 different execution contexts to one
663
+
664
+ ```typescript
665
+ // before depending on the context the tool was executed in
666
+ tool.execute({ context: data });
667
+ tool.execute({ context: { inputData: data } });
668
+ tool.execute(data);
669
+
670
+ // now, for all contexts
671
+ tool.execute(data, context);
672
+ ```
673
+
674
+ **Before:**
675
+
676
+ ```typescript
677
+ inputSchema: z.object({ something: z.string() }),
678
+ execute: async ({ context, tracingContext, runId, ... }) => {
679
+ return doSomething(context.string);
680
+ }
681
+ ```
682
+
683
+ **After:**
684
+
685
+ ```typescript
686
+ inputSchema: z.object({ something: z.string() }),
687
+ execute: async (inputData, context) => {
688
+ const { agent, mcp, workflow, ...sharedContext } = context
689
+
690
+ // context that only an agent would get like toolCallId, messages, suspend, resume, etc
691
+ if (agent) {
692
+ doSomething(inputData.something, agent)
693
+ // context that only a workflow would get like runId, state, suspend, resume, etc
694
+ } else if (workflow) {
695
+ doSomething(inputData.something, workflow)
696
+ // context that only a workflow would get like "extra", "elicitation"
697
+ } else if (mcp) {
698
+ doSomething(inputData.something, mcp)
699
+ } else {
700
+ // Running a tool in no execution context
701
+ return doSomething(inputData.something);
702
+ }
703
+ }
704
+ ```
705
+
706
+ - Add the description field to listAgents ([#9672](https://github.com/mastra-ai/mastra/pull/9672))
707
+
708
+ - Fix the link issue in observability ([#9764](https://github.com/mastra-ai/mastra/pull/9764))
709
+
44
710
  - Add tool call approval ([#8649](https://github.com/mastra-ai/mastra/pull/8649))
45
711
 
46
- - Updated dependencies [[`f743dbb`](https://github.com/mastra-ai/mastra/commit/f743dbb8b40d1627b5c10c0e6fc154f4ebb6e394), [`6c049d9`](https://github.com/mastra-ai/mastra/commit/6c049d94063fdcbd5b81c4912a2bf82a92c9cc0b), [`9e1911d`](https://github.com/mastra-ai/mastra/commit/9e1911db2b4db85e0e768c3f15e0d61e319869f6), [`ebac155`](https://github.com/mastra-ai/mastra/commit/ebac15564a590117db7078233f927a7e28a85106), [`9d819d5`](https://github.com/mastra-ai/mastra/commit/9d819d54b61481639f4008e4694791bddf187edd), [`71c8d6c`](https://github.com/mastra-ai/mastra/commit/71c8d6c161253207b2b9588bdadb7eed604f7253), [`5df9cce`](https://github.com/mastra-ai/mastra/commit/5df9cce1a753438413f64c11eeef8f845745c2a8), [`c576fc0`](https://github.com/mastra-ai/mastra/commit/c576fc0b100b2085afded91a37c97a0ea0ec09c7), [`57d157f`](https://github.com/mastra-ai/mastra/commit/57d157f0b163a95c3e6c9eae31bdb11d1bfc64f9), [`d78b38d`](https://github.com/mastra-ai/mastra/commit/d78b38d898fce285260d3bbb4befade54331617f), [`cfae733`](https://github.com/mastra-ai/mastra/commit/cfae73394f4920635e6c919c8e95ff9a0788e2e5), [`e3dfda7`](https://github.com/mastra-ai/mastra/commit/e3dfda7b11bf3b8c4bb55637028befb5f387fc74), [`f0f8f12`](https://github.com/mastra-ai/mastra/commit/f0f8f125c308f2d0fd36942ef652fd852df7522f), [`d36cfbb`](https://github.com/mastra-ai/mastra/commit/d36cfbbb6565ba5f827883cc9bb648eb14befdc1), [`3697853`](https://github.com/mastra-ai/mastra/commit/3697853deeb72017d90e0f38a93c1e29221aeca0), [`53d927c`](https://github.com/mastra-ai/mastra/commit/53d927cc6f03bff33655b7e2b788da445a08731d), [`bda6370`](https://github.com/mastra-ai/mastra/commit/bda637009360649aaf579919e7873e33553c273e), [`c7f1f7d`](https://github.com/mastra-ai/mastra/commit/c7f1f7d24f61f247f018cc2d1f33bf63212959a7), [`2c4438b`](https://github.com/mastra-ai/mastra/commit/2c4438b87817ab7eed818c7990fef010475af1a3), [`fa8409b`](https://github.com/mastra-ai/mastra/commit/fa8409bc39cfd8ba6643b9db5269b90b22e2a2f7), [`173c535`](https://github.com/mastra-ai/mastra/commit/173c535c0645b0da404fe09f003778f0b0d4e019)]:
47
- - @mastra/core@0.0.0-playground-studio-cloud-20251031080052
712
+ - Fix scorers listing filtring ([#9801](https://github.com/mastra-ai/mastra/pull/9801))
713
+
714
+ - Fixes issue where clicking the reset button in the model picker would fail to restore the original LanguageModelV2 (or any other types) object that was passed during agent construction. ([#9481](https://github.com/mastra-ai/mastra/pull/9481))
715
+
716
+ - Update peer dependencies to match core package version bump (1.0.0) ([#9489](https://github.com/mastra-ai/mastra/pull/9489))
717
+
718
+ - Fix undefined runtimeContext using memory from playground ([#9328](https://github.com/mastra-ai/mastra/pull/9328))
719
+
720
+ - Make step optional in resumeStreamVNext API ([#9453](https://github.com/mastra-ai/mastra/pull/9453))
721
+
722
+ - Remove `waitForEvent` from workflows. `waitForEvent` is now removed, please use suspend & resume flow instead. See https://mastra.ai/en/docs/workflows/suspend-and-resume for more details on suspend & resume flow. ([#9214](https://github.com/mastra-ai/mastra/pull/9214))
723
+
724
+ - Use memory mock in server tests ([#9486](https://github.com/mastra-ai/mastra/pull/9486))
725
+
726
+ - Remove format from stream/generate ([#9577](https://github.com/mastra-ai/mastra/pull/9577))
727
+
728
+ - Updated dependencies [[`39c9743`](https://github.com/mastra-ai/mastra/commit/39c97432d084294f8ba85fbf3ef28098ff21459e), [`f743dbb`](https://github.com/mastra-ai/mastra/commit/f743dbb8b40d1627b5c10c0e6fc154f4ebb6e394), [`fec5129`](https://github.com/mastra-ai/mastra/commit/fec5129de7fc64423ea03661a56cef31dc747a0d), [`0491e7c`](https://github.com/mastra-ai/mastra/commit/0491e7c9b714cb0ba22187ee062147ec2dd7c712), [`f6f4903`](https://github.com/mastra-ai/mastra/commit/f6f4903397314f73362061dc5a3e8e7c61ea34aa), [`0e8ed46`](https://github.com/mastra-ai/mastra/commit/0e8ed467c54d6901a6a365f270ec15d6faadb36c), [`6c049d9`](https://github.com/mastra-ai/mastra/commit/6c049d94063fdcbd5b81c4912a2bf82a92c9cc0b), [`2f897df`](https://github.com/mastra-ai/mastra/commit/2f897df208508f46f51b7625e5dd20c37f93e0e3), [`3443770`](https://github.com/mastra-ai/mastra/commit/3443770662df8eb24c9df3589b2792d78cfcb811), [`f0a07e0`](https://github.com/mastra-ai/mastra/commit/f0a07e0111b3307c5fabfa4094c5c2cfb734fbe6), [`aaa40e7`](https://github.com/mastra-ai/mastra/commit/aaa40e788628b319baa8e889407d11ad626547fa), [`1521d71`](https://github.com/mastra-ai/mastra/commit/1521d716e5daedc74690c983fbd961123c56756b), [`9e1911d`](https://github.com/mastra-ai/mastra/commit/9e1911db2b4db85e0e768c3f15e0d61e319869f6), [`ebac155`](https://github.com/mastra-ai/mastra/commit/ebac15564a590117db7078233f927a7e28a85106), [`dd1c38d`](https://github.com/mastra-ai/mastra/commit/dd1c38d1b75f1b695c27b40d8d9d6ed00d5e0f6f), [`5948e6a`](https://github.com/mastra-ai/mastra/commit/5948e6a5146c83666ba3f294b2be576c82a513fb), [`8940859`](https://github.com/mastra-ai/mastra/commit/89408593658199b4ad67f7b65e888f344e64a442), [`e629310`](https://github.com/mastra-ai/mastra/commit/e629310f1a73fa236d49ec7a1d1cceb6229dc7cc), [`4c6b492`](https://github.com/mastra-ai/mastra/commit/4c6b492c4dd591c6a592520c1f6855d6e936d71f), [`dff01d8`](https://github.com/mastra-ai/mastra/commit/dff01d81ce1f4e4087cfac20fa868e6db138dd14), [`9d819d5`](https://github.com/mastra-ai/mastra/commit/9d819d54b61481639f4008e4694791bddf187edd), [`71c8d6c`](https://github.com/mastra-ai/mastra/commit/71c8d6c161253207b2b9588bdadb7eed604f7253), [`6179a9b`](https://github.com/mastra-ai/mastra/commit/6179a9ba36ffac326de3cc3c43cdc8028d37c251), [`00f4921`](https://github.com/mastra-ai/mastra/commit/00f4921dd2c91a1e5446799599ef7116a8214a1a), [`ca8041c`](https://github.com/mastra-ai/mastra/commit/ca8041cce0379fda22ed293a565bcb5b6ddca68a), [`7051bf3`](https://github.com/mastra-ai/mastra/commit/7051bf38b3b122a069008f861f7bfc004a6d9f6e), [`a8f1494`](https://github.com/mastra-ai/mastra/commit/a8f1494f4bbdc2770bcf327d4c7d869e332183f1), [`0793497`](https://github.com/mastra-ai/mastra/commit/079349753620c40246ffd673e3f9d7d9820beff3), [`5df9cce`](https://github.com/mastra-ai/mastra/commit/5df9cce1a753438413f64c11eeef8f845745c2a8), [`a854ede`](https://github.com/mastra-ai/mastra/commit/a854ede62bf5ac0945a624ac48913dd69c73aabf), [`c576fc0`](https://github.com/mastra-ai/mastra/commit/c576fc0b100b2085afded91a37c97a0ea0ec09c7), [`3defc80`](https://github.com/mastra-ai/mastra/commit/3defc80cf2b88a1b7fc1cc4ddcb91e982a614609), [`16153fe`](https://github.com/mastra-ai/mastra/commit/16153fe7eb13c99401f48e6ca32707c965ee28b9), [`9f4a683`](https://github.com/mastra-ai/mastra/commit/9f4a6833e88b52574665c028fd5508ad5c2f6004), [`bc94344`](https://github.com/mastra-ai/mastra/commit/bc943444a1342d8a662151b7bce1df7dae32f59c), [`57d157f`](https://github.com/mastra-ai/mastra/commit/57d157f0b163a95c3e6c9eae31bdb11d1bfc64f9), [`903f67d`](https://github.com/mastra-ai/mastra/commit/903f67d184504a273893818c02b961f5423a79ad), [`2a90c55`](https://github.com/mastra-ai/mastra/commit/2a90c55a86a9210697d5adaab5ee94584b079adc), [`eb09742`](https://github.com/mastra-ai/mastra/commit/eb09742197f66c4c38154c3beec78313e69760b2), [`96d35f6`](https://github.com/mastra-ai/mastra/commit/96d35f61376bc2b1bf148648a2c1985bd51bef55), [`5cbe88a`](https://github.com/mastra-ai/mastra/commit/5cbe88aefbd9f933bca669fd371ea36bf939ac6d), [`a1bd7b8`](https://github.com/mastra-ai/mastra/commit/a1bd7b8571db16b94eb01588f451a74758c96d65), [`d78b38d`](https://github.com/mastra-ai/mastra/commit/d78b38d898fce285260d3bbb4befade54331617f), [`0633100`](https://github.com/mastra-ai/mastra/commit/0633100a911ad22f5256471bdf753da21c104742), [`c710c16`](https://github.com/mastra-ai/mastra/commit/c710c1652dccfdc4111c8412bca7a6bb1d48b441), [`354ad0b`](https://github.com/mastra-ai/mastra/commit/354ad0b7b1b8183ac567f236a884fc7ede6d7138), [`cfae733`](https://github.com/mastra-ai/mastra/commit/cfae73394f4920635e6c919c8e95ff9a0788e2e5), [`e3dfda7`](https://github.com/mastra-ai/mastra/commit/e3dfda7b11bf3b8c4bb55637028befb5f387fc74), [`844ea5d`](https://github.com/mastra-ai/mastra/commit/844ea5dc0c248961e7bf73629ae7dcff503e853c), [`398fde3`](https://github.com/mastra-ai/mastra/commit/398fde3f39e707cda79372cdae8f9870e3b57c8d), [`f0f8f12`](https://github.com/mastra-ai/mastra/commit/f0f8f125c308f2d0fd36942ef652fd852df7522f), [`0d7618b`](https://github.com/mastra-ai/mastra/commit/0d7618bc650bf2800934b243eca5648f4aeed9c2), [`7b763e5`](https://github.com/mastra-ai/mastra/commit/7b763e52fc3eaf699c2a99f2adf418dd46e4e9a5), [`d36cfbb`](https://github.com/mastra-ai/mastra/commit/d36cfbbb6565ba5f827883cc9bb648eb14befdc1), [`3697853`](https://github.com/mastra-ai/mastra/commit/3697853deeb72017d90e0f38a93c1e29221aeca0), [`b2e45ec`](https://github.com/mastra-ai/mastra/commit/b2e45eca727a8db01a81ba93f1a5219c7183c839), [`d6d49f7`](https://github.com/mastra-ai/mastra/commit/d6d49f7b8714fa19a52ff9c7cf7fb7e73751901e), [`a534e95`](https://github.com/mastra-ai/mastra/commit/a534e9591f83b3cc1ebff99c67edf4cda7bf81d3), [`9d0e7fe`](https://github.com/mastra-ai/mastra/commit/9d0e7feca8ed98de959f53476ee1456073673348), [`53d927c`](https://github.com/mastra-ai/mastra/commit/53d927cc6f03bff33655b7e2b788da445a08731d), [`3f2faf2`](https://github.com/mastra-ai/mastra/commit/3f2faf2e2d685d6c053cc5af1bf9fedf267b2ce5), [`22f64bc`](https://github.com/mastra-ai/mastra/commit/22f64bc1d37149480b58bf2fefe35b79a1e3e7d5), [`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc), [`b7959e6`](https://github.com/mastra-ai/mastra/commit/b7959e6e25a46b480f9ea2217c4c6c588c423791), [`bda6370`](https://github.com/mastra-ai/mastra/commit/bda637009360649aaf579919e7873e33553c273e), [`d7acd8e`](https://github.com/mastra-ai/mastra/commit/d7acd8e987b5d7eff4fd98b0906c17c06a2e83d5), [`c7f1f7d`](https://github.com/mastra-ai/mastra/commit/c7f1f7d24f61f247f018cc2d1f33bf63212959a7), [`0bddc6d`](https://github.com/mastra-ai/mastra/commit/0bddc6d8dbd6f6008c0cba2e4960a2da75a55af1), [`735d8c1`](https://github.com/mastra-ai/mastra/commit/735d8c1c0d19fbc09e6f8b66cf41bc7655993838), [`acf322e`](https://github.com/mastra-ai/mastra/commit/acf322e0f1fd0189684cf529d91c694bea918a45), [`c942802`](https://github.com/mastra-ai/mastra/commit/c942802a477a925b01859a7b8688d4355715caaa), [`a0c8c1b`](https://github.com/mastra-ai/mastra/commit/a0c8c1b87d4fee252aebda73e8637fbe01d761c9), [`cc34739`](https://github.com/mastra-ai/mastra/commit/cc34739c34b6266a91bea561119240a7acf47887), [`c218bd3`](https://github.com/mastra-ai/mastra/commit/c218bd3759e32423735b04843a09404572631014), [`2c4438b`](https://github.com/mastra-ai/mastra/commit/2c4438b87817ab7eed818c7990fef010475af1a3), [`2b8893c`](https://github.com/mastra-ai/mastra/commit/2b8893cb108ef9acb72ee7835cd625610d2c1a4a), [`8e5c75b`](https://github.com/mastra-ai/mastra/commit/8e5c75bdb1d08a42d45309a4c72def4b6890230f), [`e59e0d3`](https://github.com/mastra-ai/mastra/commit/e59e0d32afb5fcf2c9f3c00c8f81f6c21d3a63fa), [`fa8409b`](https://github.com/mastra-ai/mastra/commit/fa8409bc39cfd8ba6643b9db5269b90b22e2a2f7), [`173c535`](https://github.com/mastra-ai/mastra/commit/173c535c0645b0da404fe09f003778f0b0d4e019)]:
729
+ - @mastra/core@1.0.0-beta.0
48
730
 
49
731
  ## 0.22.2
50
732