@mastra/libsql 0.0.0-error-handler-fix-20251020202607 → 0.0.0-execa-dynamic-import-20260304221256

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 (77) hide show
  1. package/CHANGELOG.md +2839 -3
  2. package/LICENSE.md +15 -0
  3. package/README.md +30 -20
  4. package/dist/docs/SKILL.md +50 -0
  5. package/dist/docs/assets/SOURCE_MAP.json +6 -0
  6. package/dist/docs/references/docs-agents-agent-approval.md +588 -0
  7. package/dist/docs/references/docs-agents-agent-memory.md +209 -0
  8. package/dist/docs/references/docs-agents-network-approval.md +275 -0
  9. package/dist/docs/references/docs-agents-networks.md +299 -0
  10. package/dist/docs/references/docs-memory-memory-processors.md +314 -0
  11. package/dist/docs/references/docs-memory-message-history.md +260 -0
  12. package/dist/docs/references/docs-memory-overview.md +45 -0
  13. package/dist/docs/references/docs-memory-semantic-recall.md +288 -0
  14. package/dist/docs/references/docs-memory-storage.md +261 -0
  15. package/dist/docs/references/docs-memory-working-memory.md +400 -0
  16. package/dist/docs/references/docs-observability-overview.md +70 -0
  17. package/dist/docs/references/docs-observability-tracing-exporters-default.md +209 -0
  18. package/dist/docs/references/docs-rag-retrieval.md +515 -0
  19. package/dist/docs/references/docs-workflows-snapshots.md +238 -0
  20. package/dist/docs/references/guides-agent-frameworks-ai-sdk.md +140 -0
  21. package/dist/docs/references/reference-core-getMemory.md +50 -0
  22. package/dist/docs/references/reference-core-listMemory.md +56 -0
  23. package/dist/docs/references/reference-core-mastra-class.md +66 -0
  24. package/dist/docs/references/reference-memory-memory-class.md +147 -0
  25. package/dist/docs/references/reference-storage-composite.md +235 -0
  26. package/dist/docs/references/reference-storage-dynamodb.md +282 -0
  27. package/dist/docs/references/reference-storage-libsql.md +135 -0
  28. package/dist/docs/references/reference-vectors-libsql.md +305 -0
  29. package/dist/index.cjs +8693 -1962
  30. package/dist/index.cjs.map +1 -1
  31. package/dist/index.js +8682 -1965
  32. package/dist/index.js.map +1 -1
  33. package/dist/storage/db/index.d.ts +306 -0
  34. package/dist/storage/db/index.d.ts.map +1 -0
  35. package/dist/storage/{domains → db}/utils.d.ts +21 -13
  36. package/dist/storage/db/utils.d.ts.map +1 -0
  37. package/dist/storage/domains/agents/index.d.ts +30 -0
  38. package/dist/storage/domains/agents/index.d.ts.map +1 -0
  39. package/dist/storage/domains/blobs/index.d.ts +17 -0
  40. package/dist/storage/domains/blobs/index.d.ts.map +1 -0
  41. package/dist/storage/domains/datasets/index.d.ts +43 -0
  42. package/dist/storage/domains/datasets/index.d.ts.map +1 -0
  43. package/dist/storage/domains/experiments/index.d.ts +29 -0
  44. package/dist/storage/domains/experiments/index.d.ts.map +1 -0
  45. package/dist/storage/domains/mcp-clients/index.d.ts +26 -0
  46. package/dist/storage/domains/mcp-clients/index.d.ts.map +1 -0
  47. package/dist/storage/domains/mcp-servers/index.d.ts +26 -0
  48. package/dist/storage/domains/mcp-servers/index.d.ts.map +1 -0
  49. package/dist/storage/domains/memory/index.d.ts +40 -53
  50. package/dist/storage/domains/memory/index.d.ts.map +1 -1
  51. package/dist/storage/domains/observability/index.d.ts +41 -29
  52. package/dist/storage/domains/observability/index.d.ts.map +1 -1
  53. package/dist/storage/domains/prompt-blocks/index.d.ts +25 -0
  54. package/dist/storage/domains/prompt-blocks/index.d.ts.map +1 -0
  55. package/dist/storage/domains/scorer-definitions/index.d.ts +26 -0
  56. package/dist/storage/domains/scorer-definitions/index.d.ts.map +1 -0
  57. package/dist/storage/domains/scores/index.d.ts +19 -31
  58. package/dist/storage/domains/scores/index.d.ts.map +1 -1
  59. package/dist/storage/domains/skills/index.d.ts +26 -0
  60. package/dist/storage/domains/skills/index.d.ts.map +1 -0
  61. package/dist/storage/domains/workflows/index.d.ts +20 -32
  62. package/dist/storage/domains/workflows/index.d.ts.map +1 -1
  63. package/dist/storage/domains/workspaces/index.d.ts +26 -0
  64. package/dist/storage/domains/workspaces/index.d.ts.map +1 -0
  65. package/dist/storage/index.d.ts +68 -259
  66. package/dist/storage/index.d.ts.map +1 -1
  67. package/dist/vector/index.d.ts +12 -4
  68. package/dist/vector/index.d.ts.map +1 -1
  69. package/dist/vector/sql-builder.d.ts.map +1 -1
  70. package/package.json +16 -12
  71. package/dist/storage/domains/legacy-evals/index.d.ts +0 -18
  72. package/dist/storage/domains/legacy-evals/index.d.ts.map +0 -1
  73. package/dist/storage/domains/operations/index.d.ts +0 -110
  74. package/dist/storage/domains/operations/index.d.ts.map +0 -1
  75. package/dist/storage/domains/traces/index.d.ts +0 -21
  76. package/dist/storage/domains/traces/index.d.ts.map +0 -1
  77. package/dist/storage/domains/utils.d.ts.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,6 +1,2831 @@
1
1
  # @mastra/libsql
2
2
 
3
- ## 0.0.0-error-handler-fix-20251020202607
3
+ ## 0.0.0-execa-dynamic-import-20260304221256
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`4e79496`](https://github.com/mastra-ai/mastra/commit/4e79496a7b4d1869e63d538418fc84cd7d84d86c), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:
8
+ - @mastra/core@0.0.0-execa-dynamic-import-20260304221256
9
+
10
+ ## 1.6.3
11
+
12
+ ### Patch Changes
13
+
14
+ - Added atomic `updateWorkflowResults` and `updateWorkflowState` to safely merge concurrent step results into workflow snapshots. ([#12575](https://github.com/mastra-ai/mastra/pull/12575))
15
+
16
+ - Added `insertObservationalMemoryRecord()` to PostgreSQL, LibSQL, MongoDB, and Upstash adapters for OM cloning support. ([#13569](https://github.com/mastra-ai/mastra/pull/13569))
17
+
18
+ - Updated dependencies [[`504fc8b`](https://github.com/mastra-ai/mastra/commit/504fc8b9d0ddab717577ad3bf9c95ea4bd5377bd), [`f9c150b`](https://github.com/mastra-ai/mastra/commit/f9c150b7595ad05ad9cc9a11098e2944361e8c22), [`88de7e8`](https://github.com/mastra-ai/mastra/commit/88de7e8dfe4b7e1951a9e441bb33136e705ce24e), [`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0), [`3790c75`](https://github.com/mastra-ai/mastra/commit/3790c7578cc6a47d854eb12d89e6b1912867fe29), [`e7a235b`](https://github.com/mastra-ai/mastra/commit/e7a235be6472e0c870ed6c791ddb17c492dc188b), [`d51d298`](https://github.com/mastra-ai/mastra/commit/d51d298953967aab1f58ec965b644d109214f085), [`6dbeeb9`](https://github.com/mastra-ai/mastra/commit/6dbeeb94a8b1eebb727300d1a98961f882180794), [`d5f0d8d`](https://github.com/mastra-ai/mastra/commit/d5f0d8d6a03e515ddaa9b5da19b7e44b8357b07b), [`09c3b18`](https://github.com/mastra-ai/mastra/commit/09c3b1802ff14e243a8a8baea327440bc8cc2e32), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`85c84eb`](https://github.com/mastra-ai/mastra/commit/85c84ebb78aebfcba9d209c8e152b16d7a00cb71), [`a89272a`](https://github.com/mastra-ai/mastra/commit/a89272a5d71939b9fcd284e6a6dc1dd091a6bdcf), [`ee9c8df`](https://github.com/mastra-ai/mastra/commit/ee9c8df644f19d055af5f496bf4942705f5a47b7), [`77b4a25`](https://github.com/mastra-ai/mastra/commit/77b4a254e51907f8ff3a3ba95596a18e93ae4b35), [`276246e`](https://github.com/mastra-ai/mastra/commit/276246e0b9066a1ea48bbc70df84dbe528daaf99), [`08ecfdb`](https://github.com/mastra-ai/mastra/commit/08ecfdbdad6fb8285deef86a034bdf4a6047cfca), [`d5f628c`](https://github.com/mastra-ai/mastra/commit/d5f628ca86c6f6f3ff1035d52f635df32dd81cab), [`524c0f3`](https://github.com/mastra-ai/mastra/commit/524c0f3c434c3d9d18f66338dcef383d6161b59c), [`c18a0e9`](https://github.com/mastra-ai/mastra/commit/c18a0e9cef1e4ca004b2963d35e4cfc031971eac), [`4bd21ea`](https://github.com/mastra-ai/mastra/commit/4bd21ea43d44d0a0427414fc047577f9f0aa3bec), [`115a7a4`](https://github.com/mastra-ai/mastra/commit/115a7a47db5e9896fec12ae6507501adb9ec89bf), [`22a48ae`](https://github.com/mastra-ai/mastra/commit/22a48ae2513eb54d8d79dad361fddbca97a155e8), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`7edf78f`](https://github.com/mastra-ai/mastra/commit/7edf78f80422c43e84585f08ba11df0d4d0b73c5), [`1c4221c`](https://github.com/mastra-ai/mastra/commit/1c4221cf6032ec98d0e094d4ee11da3e48490d96), [`d25b9ea`](https://github.com/mastra-ai/mastra/commit/d25b9eabd400167255a97b690ffbc4ee4097ded5), [`fe1ce5c`](https://github.com/mastra-ai/mastra/commit/fe1ce5c9211c03d561606fda95cbfe7df1d9a9b5), [`b03c0e0`](https://github.com/mastra-ai/mastra/commit/b03c0e0389a799523929a458b0509c9e4244d562), [`0a8366b`](https://github.com/mastra-ai/mastra/commit/0a8366b0a692fcdde56c4d526e4cf03c502ae4ac), [`85664e9`](https://github.com/mastra-ai/mastra/commit/85664e9fd857320fbc245e301f764f45f66f32a3), [`bc79650`](https://github.com/mastra-ai/mastra/commit/bc796500c6e0334faa158a96077e3fb332274869), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`3a3a59e`](https://github.com/mastra-ai/mastra/commit/3a3a59e8ffaa6a985fe3d9a126a3f5ade11a6724), [`3108d4e`](https://github.com/mastra-ai/mastra/commit/3108d4e649c9fddbf03253a6feeb388a5fa9fa5a), [`0c33b2c`](https://github.com/mastra-ai/mastra/commit/0c33b2c9db537f815e1c59e2c898ffce2e395a79), [`191e5bd`](https://github.com/mastra-ai/mastra/commit/191e5bd29b82f5bda35243945790da7bc7b695c2), [`f77cd94`](https://github.com/mastra-ai/mastra/commit/f77cd94c44eabed490384e7d19232a865e13214c), [`e8135c7`](https://github.com/mastra-ai/mastra/commit/e8135c7e300dac5040670eec7eab896ac6092e30), [`daca48f`](https://github.com/mastra-ai/mastra/commit/daca48f0fb17b7ae0b62a2ac40cf0e491b2fd0b7), [`257d14f`](https://github.com/mastra-ai/mastra/commit/257d14faca5931f2e4186fc165b6f0b1f915deee), [`352f25d`](https://github.com/mastra-ai/mastra/commit/352f25da316b24cdd5b410fd8dddf6a8b763da2a), [`93477d0`](https://github.com/mastra-ai/mastra/commit/93477d0769b8a13ea5ed73d508d967fb23eaeed9), [`31c78b3`](https://github.com/mastra-ai/mastra/commit/31c78b3eb28f58a8017f1dcc795c33214d87feac), [`0bc0720`](https://github.com/mastra-ai/mastra/commit/0bc07201095791858087cc56f353fcd65e87ab54), [`36516ac`](https://github.com/mastra-ai/mastra/commit/36516aca1021cbeb42e74751b46a2614101f37c8), [`e947652`](https://github.com/mastra-ai/mastra/commit/e9476527fdecb4449e54570e80dfaf8466901254), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`ec248f6`](https://github.com/mastra-ai/mastra/commit/ec248f6b56e8a037c066c49b2178e2507471d988)]:
19
+ - @mastra/core@1.9.0
20
+
21
+ ## 1.6.3-alpha.0
22
+
23
+ ### Patch Changes
24
+
25
+ - Added atomic `updateWorkflowResults` and `updateWorkflowState` to safely merge concurrent step results into workflow snapshots. ([#12575](https://github.com/mastra-ai/mastra/pull/12575))
26
+
27
+ - Added `insertObservationalMemoryRecord()` to PostgreSQL, LibSQL, MongoDB, and Upstash adapters for OM cloning support. ([#13569](https://github.com/mastra-ai/mastra/pull/13569))
28
+
29
+ - Updated dependencies [[`504fc8b`](https://github.com/mastra-ai/mastra/commit/504fc8b9d0ddab717577ad3bf9c95ea4bd5377bd), [`f9c150b`](https://github.com/mastra-ai/mastra/commit/f9c150b7595ad05ad9cc9a11098e2944361e8c22), [`88de7e8`](https://github.com/mastra-ai/mastra/commit/88de7e8dfe4b7e1951a9e441bb33136e705ce24e), [`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0), [`3790c75`](https://github.com/mastra-ai/mastra/commit/3790c7578cc6a47d854eb12d89e6b1912867fe29), [`e7a235b`](https://github.com/mastra-ai/mastra/commit/e7a235be6472e0c870ed6c791ddb17c492dc188b), [`d51d298`](https://github.com/mastra-ai/mastra/commit/d51d298953967aab1f58ec965b644d109214f085), [`6dbeeb9`](https://github.com/mastra-ai/mastra/commit/6dbeeb94a8b1eebb727300d1a98961f882180794), [`d5f0d8d`](https://github.com/mastra-ai/mastra/commit/d5f0d8d6a03e515ddaa9b5da19b7e44b8357b07b), [`09c3b18`](https://github.com/mastra-ai/mastra/commit/09c3b1802ff14e243a8a8baea327440bc8cc2e32), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`85c84eb`](https://github.com/mastra-ai/mastra/commit/85c84ebb78aebfcba9d209c8e152b16d7a00cb71), [`a89272a`](https://github.com/mastra-ai/mastra/commit/a89272a5d71939b9fcd284e6a6dc1dd091a6bdcf), [`ee9c8df`](https://github.com/mastra-ai/mastra/commit/ee9c8df644f19d055af5f496bf4942705f5a47b7), [`77b4a25`](https://github.com/mastra-ai/mastra/commit/77b4a254e51907f8ff3a3ba95596a18e93ae4b35), [`276246e`](https://github.com/mastra-ai/mastra/commit/276246e0b9066a1ea48bbc70df84dbe528daaf99), [`08ecfdb`](https://github.com/mastra-ai/mastra/commit/08ecfdbdad6fb8285deef86a034bdf4a6047cfca), [`d5f628c`](https://github.com/mastra-ai/mastra/commit/d5f628ca86c6f6f3ff1035d52f635df32dd81cab), [`524c0f3`](https://github.com/mastra-ai/mastra/commit/524c0f3c434c3d9d18f66338dcef383d6161b59c), [`c18a0e9`](https://github.com/mastra-ai/mastra/commit/c18a0e9cef1e4ca004b2963d35e4cfc031971eac), [`4bd21ea`](https://github.com/mastra-ai/mastra/commit/4bd21ea43d44d0a0427414fc047577f9f0aa3bec), [`115a7a4`](https://github.com/mastra-ai/mastra/commit/115a7a47db5e9896fec12ae6507501adb9ec89bf), [`22a48ae`](https://github.com/mastra-ai/mastra/commit/22a48ae2513eb54d8d79dad361fddbca97a155e8), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`7edf78f`](https://github.com/mastra-ai/mastra/commit/7edf78f80422c43e84585f08ba11df0d4d0b73c5), [`1c4221c`](https://github.com/mastra-ai/mastra/commit/1c4221cf6032ec98d0e094d4ee11da3e48490d96), [`d25b9ea`](https://github.com/mastra-ai/mastra/commit/d25b9eabd400167255a97b690ffbc4ee4097ded5), [`fe1ce5c`](https://github.com/mastra-ai/mastra/commit/fe1ce5c9211c03d561606fda95cbfe7df1d9a9b5), [`b03c0e0`](https://github.com/mastra-ai/mastra/commit/b03c0e0389a799523929a458b0509c9e4244d562), [`0a8366b`](https://github.com/mastra-ai/mastra/commit/0a8366b0a692fcdde56c4d526e4cf03c502ae4ac), [`85664e9`](https://github.com/mastra-ai/mastra/commit/85664e9fd857320fbc245e301f764f45f66f32a3), [`bc79650`](https://github.com/mastra-ai/mastra/commit/bc796500c6e0334faa158a96077e3fb332274869), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`3a3a59e`](https://github.com/mastra-ai/mastra/commit/3a3a59e8ffaa6a985fe3d9a126a3f5ade11a6724), [`3108d4e`](https://github.com/mastra-ai/mastra/commit/3108d4e649c9fddbf03253a6feeb388a5fa9fa5a), [`0c33b2c`](https://github.com/mastra-ai/mastra/commit/0c33b2c9db537f815e1c59e2c898ffce2e395a79), [`191e5bd`](https://github.com/mastra-ai/mastra/commit/191e5bd29b82f5bda35243945790da7bc7b695c2), [`f77cd94`](https://github.com/mastra-ai/mastra/commit/f77cd94c44eabed490384e7d19232a865e13214c), [`e8135c7`](https://github.com/mastra-ai/mastra/commit/e8135c7e300dac5040670eec7eab896ac6092e30), [`daca48f`](https://github.com/mastra-ai/mastra/commit/daca48f0fb17b7ae0b62a2ac40cf0e491b2fd0b7), [`257d14f`](https://github.com/mastra-ai/mastra/commit/257d14faca5931f2e4186fc165b6f0b1f915deee), [`352f25d`](https://github.com/mastra-ai/mastra/commit/352f25da316b24cdd5b410fd8dddf6a8b763da2a), [`93477d0`](https://github.com/mastra-ai/mastra/commit/93477d0769b8a13ea5ed73d508d967fb23eaeed9), [`31c78b3`](https://github.com/mastra-ai/mastra/commit/31c78b3eb28f58a8017f1dcc795c33214d87feac), [`0bc0720`](https://github.com/mastra-ai/mastra/commit/0bc07201095791858087cc56f353fcd65e87ab54), [`36516ac`](https://github.com/mastra-ai/mastra/commit/36516aca1021cbeb42e74751b46a2614101f37c8), [`e947652`](https://github.com/mastra-ai/mastra/commit/e9476527fdecb4449e54570e80dfaf8466901254), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`ec248f6`](https://github.com/mastra-ai/mastra/commit/ec248f6b56e8a037c066c49b2178e2507471d988)]:
30
+ - @mastra/core@1.9.0-alpha.0
31
+
32
+ ## 1.6.2
33
+
34
+ ### Patch Changes
35
+
36
+ - Fixed observation activation to always preserve a minimum amount of context. Previously, swapping buffered observation chunks could unexpectedly drop the context window to near-zero tokens. ([#13476](https://github.com/mastra-ai/mastra/pull/13476))
37
+
38
+ - Add a clear runtime error when `queryVector` is omitted for vector stores that require a vector for queries. Previously, omitting `queryVector` would produce confusing SDK-level errors; now each store throws a structured `MastraError` with `ErrorCategory.USER` explaining that metadata-only queries are not supported by that backend. ([#13286](https://github.com/mastra-ai/mastra/pull/13286))
39
+
40
+ - Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:
41
+ - @mastra/core@1.8.0
42
+
43
+ ## 1.6.2-alpha.0
44
+
45
+ ### Patch Changes
46
+
47
+ - Fixed observation activation to always preserve a minimum amount of context. Previously, swapping buffered observation chunks could unexpectedly drop the context window to near-zero tokens. ([#13476](https://github.com/mastra-ai/mastra/pull/13476))
48
+
49
+ - Add a clear runtime error when `queryVector` is omitted for vector stores that require a vector for queries. Previously, omitting `queryVector` would produce confusing SDK-level errors; now each store throws a structured `MastraError` with `ErrorCategory.USER` explaining that metadata-only queries are not supported by that backend. ([#13286](https://github.com/mastra-ai/mastra/pull/13286))
50
+
51
+ - Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:
52
+ - @mastra/core@1.8.0-alpha.0
53
+
54
+ ## 1.6.1
55
+
56
+ ### Patch Changes
57
+
58
+ - Fixed non-deterministic query ordering by adding secondary sort on id for dataset and dataset item queries. ([#13399](https://github.com/mastra-ai/mastra/pull/13399))
59
+
60
+ - Prompt blocks can now define their own variables schema (`requestContextSchema`), allowing you to create reusable prompt blocks with typed variable placeholders. The server now correctly computes and returns draft/published status for prompt blocks. Existing databases are automatically migrated when upgrading. ([#13351](https://github.com/mastra-ai/mastra/pull/13351))
61
+
62
+ - Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:
63
+ - @mastra/core@1.7.0
64
+
65
+ ## 1.6.1-alpha.0
66
+
67
+ ### Patch Changes
68
+
69
+ - Fixed non-deterministic query ordering by adding secondary sort on id for dataset and dataset item queries. ([#13399](https://github.com/mastra-ai/mastra/pull/13399))
70
+
71
+ - Prompt blocks can now define their own variables schema (`requestContextSchema`), allowing you to create reusable prompt blocks with typed variable placeholders. The server now correctly computes and returns draft/published status for prompt blocks. Existing databases are automatically migrated when upgrading. ([#13351](https://github.com/mastra-ai/mastra/pull/13351))
72
+
73
+ - Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:
74
+ - @mastra/core@1.7.0-alpha.0
75
+
76
+ ## 1.6.0
77
+
78
+ ### Minor Changes
79
+
80
+ - Added MCP server table and CRUD operations to storage adapters, enabling MCP server configurations to be persisted alongside agents and workflows. ([#13357](https://github.com/mastra-ai/mastra/pull/13357))
81
+
82
+ ### Patch Changes
83
+
84
+ - Added storage schema support for processor graphs on stored agents. ([#13357](https://github.com/mastra-ai/mastra/pull/13357))
85
+
86
+ - Storage adapters now return `suggestedContinuation` and `currentTask` fields on Observational Memory activation, enabling agents to maintain conversational context across activation boundaries. ([#13357](https://github.com/mastra-ai/mastra/pull/13357))
87
+
88
+ - Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:
89
+ - @mastra/core@1.6.0
90
+
91
+ ## 1.6.0-alpha.0
92
+
93
+ ### Minor Changes
94
+
95
+ - Added MCP server table and CRUD operations to storage adapters, enabling MCP server configurations to be persisted alongside agents and workflows. ([#13357](https://github.com/mastra-ai/mastra/pull/13357))
96
+
97
+ ### Patch Changes
98
+
99
+ - Added storage schema support for processor graphs on stored agents. ([#13357](https://github.com/mastra-ai/mastra/pull/13357))
100
+
101
+ - Storage adapters now return `suggestedContinuation` and `currentTask` fields on Observational Memory activation, enabling agents to maintain conversational context across activation boundaries. ([#13357](https://github.com/mastra-ai/mastra/pull/13357))
102
+
103
+ - Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`b260123`](https://github.com/mastra-ai/mastra/commit/b2601234bd093d358c92081a58f9b0befdae52b3), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:
104
+ - @mastra/core@1.6.0-alpha.0
105
+
106
+ ## 1.5.0
107
+
108
+ ### Minor Changes
109
+
110
+ - Added workspace and skill storage domains with full CRUD, versioning, and implementations across LibSQL, Postgres, and MongoDB. Added `editor.workspace` and `editor.skill` namespaces for managing workspace configurations and skill definitions through the editor. Agents stored in the editor can now reference workspaces (by ID or inline config) and skills, with full hydration to runtime `Workspace` instances during agent resolution. ([#13156](https://github.com/mastra-ai/mastra/pull/13156))
111
+
112
+ **Filesystem-native skill versioning (draft → publish model):**
113
+
114
+ Skills are versioned as filesystem trees with content-addressable blob storage. The editing surface (live filesystem) is separated from the serving surface (versioned blob store), enabling a `draft → publish` workflow:
115
+ - `editor.skill.publish(skillId, source, skillPath)` — Snapshots a skill directory from the filesystem into blob storage, creates a new version with a tree manifest, and sets `activeVersionId`
116
+ - Version switching via `editor.skill.update({ id, activeVersionId })` — Points the skill to a previous version without re-publishing
117
+ - Publishing a skill automatically invalidates cached agents that reference it, so they re-hydrate with the updated version on next access
118
+
119
+ **Agent skill resolution strategies:**
120
+
121
+ Agents can reference skills with different resolution strategies:
122
+ - `strategy: 'latest'` — Resolves the skill's active version (honors `activeVersionId` for rollback)
123
+ - `pin: '<versionId>'` — Pins to a specific version, immune to publishes
124
+ - `strategy: 'live'` — Reads directly from the live filesystem (no blob store)
125
+
126
+ **Blob storage infrastructure:**
127
+ - `BlobStore` abstract class for content-addressable storage keyed by SHA-256 hash
128
+ - `InMemoryBlobStore` for testing
129
+ - LibSQL, Postgres, and MongoDB implementations
130
+ - `S3BlobStore` for storing blobs in S3 or S3-compatible storage (AWS, R2, MinIO, DO Spaces)
131
+ - `BlobStoreProvider` interface and `MastraEditorConfig.blobStores` registry for pluggable blob storage
132
+ - `VersionedSkillSource` and `CompositeVersionedSkillSource` for reading skill files from the blob store at runtime
133
+
134
+ **New storage types:**
135
+ - `StorageWorkspaceSnapshotType` and `StorageSkillSnapshotType` with corresponding input/output types
136
+ - `StorageWorkspaceRef` for ID-based or inline workspace references on agents
137
+ - `StorageSkillConfig` for per-agent skill overrides (`pin`, `strategy`, description, instructions)
138
+ - `SkillVersionTree` and `SkillVersionTreeEntry` for tree manifests
139
+ - `StorageBlobEntry` for content-addressable blob entries
140
+ - `SKILL_BLOBS_SCHEMA` for the `mastra_skill_blobs` table
141
+
142
+ **New editor namespaces:**
143
+ - `editor.workspace` — CRUD for workspace configs, plus `hydrateSnapshotToWorkspace()` for resolving to runtime `Workspace` instances
144
+ - `editor.skill` — CRUD for skill definitions, plus `publish()` for filesystem-to-blob snapshots
145
+
146
+ **Provider registries:**
147
+ - `MastraEditorConfig` accepts `filesystems`, `sandboxes`, and `blobStores` provider registries (keyed by provider ID)
148
+ - Built-in `local` filesystem and sandbox providers are auto-registered
149
+ - `editor.resolveBlobStore()` resolves from provider registry or falls back to the storage backend's blobs domain
150
+ - Providers expose `id`, `name`, `description`, `configSchema` (JSON Schema for UI form rendering), and a factory method
151
+
152
+ **Storage adapter support:**
153
+ - LibSQL: Full `workspaces`, `skills`, and `blobs` domain implementations
154
+ - Postgres: Full `workspaces`, `skills`, and `blobs` domain implementations
155
+ - MongoDB: Full `workspaces`, `skills`, and `blobs` domain implementations
156
+ - All three include `workspace`, `skills`, and `skillsFormat` fields on agent versions
157
+
158
+ **Server endpoints:**
159
+ - `GET/POST/PATCH/DELETE /stored/workspaces` — CRUD for stored workspaces
160
+ - `GET/POST/PATCH/DELETE /stored/skills` — CRUD for stored skills
161
+ - `POST /stored/skills/:id/publish` — Publish a skill from a filesystem source
162
+
163
+ ```ts
164
+ import { MastraEditor } from '@mastra/editor';
165
+ import { s3FilesystemProvider, s3BlobStoreProvider } from '@mastra/s3';
166
+ import { e2bSandboxProvider } from '@mastra/e2b';
167
+
168
+ const editor = new MastraEditor({
169
+ filesystems: { s3: s3FilesystemProvider },
170
+ sandboxes: { e2b: e2bSandboxProvider },
171
+ blobStores: { s3: s3BlobStoreProvider },
172
+ });
173
+
174
+ // Create a skill and publish it
175
+ const skill = await editor.skill.create({
176
+ name: 'Code Review',
177
+ description: 'Reviews code for best practices',
178
+ instructions: 'Analyze the code and provide feedback...',
179
+ });
180
+ await editor.skill.publish(skill.id, source, 'skills/code-review');
181
+
182
+ // Agents resolve skills by strategy
183
+ await editor.agent.create({
184
+ name: 'Dev Assistant',
185
+ model: { provider: 'openai', name: 'gpt-4' },
186
+ workspace: { type: 'id', workspaceId: workspace.id },
187
+ skills: { [skill.id]: { strategy: 'latest' } },
188
+ skillsFormat: 'xml',
189
+ });
190
+ ```
191
+
192
+ - Added draft/publish version management for all editor primitives (agents, scorers, MCP clients, prompt blocks). ([#13061](https://github.com/mastra-ai/mastra/pull/13061))
193
+
194
+ **Status filtering on list endpoints** — All list endpoints now accept a `?status=draft|published|archived` query parameter to filter by entity status. Defaults to `published` to preserve backward compatibility.
195
+
196
+ **Draft vs published resolution on get-by-id endpoints** — All get-by-id endpoints now accept `?status=draft` to resolve the entity with its latest (unpublished) version, or `?status=published` (default) to resolve with the active published version.
197
+
198
+ **Edits no longer auto-publish** — When updating any primitive, a new version is created but `activeVersionId` is no longer automatically updated. Edits stay as drafts until explicitly published via the activate endpoint.
199
+
200
+ **Full version management for all primitives** — Scorers, MCP clients, and prompt blocks now have the same version management API that agents have: list versions, create version snapshots, get specific versions, activate/publish, restore from a previous version, delete versions, and compare versions.
201
+
202
+ **New prompt block CRUD routes** — Prompt blocks now have full server routes (`GET /stored/prompt-blocks`, `GET /stored/prompt-blocks/:id`, `POST`, `PATCH`, `DELETE`).
203
+
204
+ **New version endpoints** — Each primitive now exposes 7 version management endpoints under `/stored/{type}/:id/versions` (list, create, get, activate, restore, delete, compare).
205
+
206
+ ```ts
207
+ // Fetch the published version (default behavior, backward compatible)
208
+ const published = await fetch('/api/stored/scorers/my-scorer');
209
+
210
+ // Fetch the draft version for editing in the UI
211
+ const draft = await fetch('/api/stored/scorers/my-scorer?status=draft');
212
+
213
+ // Publish a specific version
214
+ await fetch('/api/stored/scorers/my-scorer/versions/abc123/activate', { method: 'POST' });
215
+
216
+ // Compare two versions
217
+ const diff = await fetch('/api/stored/scorers/my-scorer/versions/compare?from=v1&to=v2');
218
+ ```
219
+
220
+ ### Patch Changes
221
+
222
+ - Dataset schemas now appear in the Edit Dataset dialog. Previously the `inputSchema` and `groundTruthSchema` fields were not passed to the dialog, so editing a dataset always showed empty schemas. ([#13175](https://github.com/mastra-ai/mastra/pull/13175))
223
+
224
+ Schema edits in the JSON editor no longer cause the cursor to jump to the top of the field. Typing `{"type": "object"}` in the schema editor now behaves like a normal text input instead of resetting on every keystroke.
225
+
226
+ Validation errors are now surfaced when updating a dataset schema that conflicts with existing items. For example, adding a `required: ["name"]` constraint when existing items lack a `name` field now shows "2 existing item(s) fail validation" in the dialog instead of silently dropping the error.
227
+
228
+ Disabling a dataset schema from the Studio UI now correctly clears it. Previously the server converted `null` (disable) to `undefined` (no change), so the old schema persisted and validation continued.
229
+
230
+ Workflow schemas fetched via `client.getWorkflow().getSchema()` are now correctly parsed. The server serializes schemas with `superjson`, but the client was using plain `JSON.parse`, yielding a `{json: {...}}` wrapper instead of the actual JSON Schema object.
231
+
232
+ - CMS draft support with status badges for agents. ([#13194](https://github.com/mastra-ai/mastra/pull/13194))
233
+ - Agent list now resolves the latest (draft) version for each stored agent, showing current edits rather than the last published state.
234
+ - Added `hasDraft` and `activeVersionId` fields to the agent list API response.
235
+ - Agent list badges: "Published" (green) when a published version exists, "Draft" (colored when unpublished changes exist, grayed out otherwise).
236
+ - Added `resolvedVersionId` to all `StorageResolved*Type` types so the server can detect whether the latest version differs from the active version.
237
+ - Added `status` option to `GetByIdOptions` to allow resolving draft vs published versions through the editor layer.
238
+ - Fixed editor cache not being cleared on version activate, restore, and delete — all four versioned domains (agents, scorers, prompt-blocks, mcp-clients) now clear the cache after version mutations.
239
+ - Added `ALTER TABLE` migration for `mastra_agent_versions` in libsql and pg to add newer columns (`mcpClients`, `requestContextSchema`, `workspace`, `skills`, `skillsFormat`).
240
+
241
+ - Added scorer version management and CMS draft/publish flow for scorers. ([#13194](https://github.com/mastra-ai/mastra/pull/13194))
242
+ - Added scorer version methods to the client SDK: `listVersions`, `createVersion`, `getVersion`, `activateVersion`, `restoreVersion`, `deleteVersion`, `compareVersions`.
243
+ - Added `ScorerVersionCombobox` for navigating scorer versions with Published/Draft labels.
244
+ - Scorer edit page now supports Save (draft) and Publish workflows with an "Unpublished changes" indicator.
245
+ - Storage list methods for agents and scorers no longer default to filtering only published entities, allowing drafts to appear in the playground.
246
+
247
+ - Updated dependencies [[`252580a`](https://github.com/mastra-ai/mastra/commit/252580a71feb0e46d0ccab04a70a79ff6a2ee0ab), [`f8e819f`](https://github.com/mastra-ai/mastra/commit/f8e819fabdfdc43d2da546a3ad81ba23685f603d), [`5c75261`](https://github.com/mastra-ai/mastra/commit/5c7526120d936757d4ffb7b82232e1641ebd45cb), [`e27d832`](https://github.com/mastra-ai/mastra/commit/e27d83281b5e166fd63a13969689e928d8605944), [`e37ef84`](https://github.com/mastra-ai/mastra/commit/e37ef8404043c94ca0c8e35ecdedb093b8087878), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`10cf521`](https://github.com/mastra-ai/mastra/commit/10cf52183344743a0d7babe24cd24fd78870c354), [`efdb682`](https://github.com/mastra-ai/mastra/commit/efdb682887f6522149769383908f9790c188ab88), [`0dee7a0`](https://github.com/mastra-ai/mastra/commit/0dee7a0ff4c2507e6eb6e6ee5f9738877ebd4ad1), [`04c2c8e`](https://github.com/mastra-ai/mastra/commit/04c2c8e888984364194131aecb490a3d6e920e61), [`02dc07a`](https://github.com/mastra-ai/mastra/commit/02dc07acc4ad42d93335825e3308f5b42266eba2), [`bb7262b`](https://github.com/mastra-ai/mastra/commit/bb7262b7c0ca76320d985b40510b6ffbbb936582), [`cf1c6e7`](https://github.com/mastra-ai/mastra/commit/cf1c6e789b131f55638fed52183a89d5078b4876), [`5ffadfe`](https://github.com/mastra-ai/mastra/commit/5ffadfefb1468ac2612b20bb84d24c39de6961c0), [`1e1339c`](https://github.com/mastra-ai/mastra/commit/1e1339cc276e571a48cfff5014487877086bfe68), [`d03df73`](https://github.com/mastra-ai/mastra/commit/d03df73f8fe9496064a33e1c3b74ba0479bf9ee6), [`79b8f45`](https://github.com/mastra-ai/mastra/commit/79b8f45a6767e1a5c3d56cd3c5b1214326b81661), [`9bbf08e`](https://github.com/mastra-ai/mastra/commit/9bbf08e3c20731c79dea13a765895b9fcf29cbf1), [`0a25952`](https://github.com/mastra-ai/mastra/commit/0a259526b5e1ac11e6efa53db1f140272962af2d), [`ffa5468`](https://github.com/mastra-ai/mastra/commit/ffa546857fc4821753979b3a34e13b4d76fbbcd4), [`3264a04`](https://github.com/mastra-ai/mastra/commit/3264a04e30340c3c5447433300a035ea0878df85), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`088d9ba`](https://github.com/mastra-ai/mastra/commit/088d9ba2577518703c52b0dccd617178d9ee6b0d), [`74fbebd`](https://github.com/mastra-ai/mastra/commit/74fbebd918a03832a2864965a8bea59bf617d3a2), [`aea6217`](https://github.com/mastra-ai/mastra/commit/aea621790bfb2291431b08da0cc5e6e150303ae7), [`b6a855e`](https://github.com/mastra-ai/mastra/commit/b6a855edc056e088279075506442ba1d6fa6def9), [`ae408ea`](https://github.com/mastra-ai/mastra/commit/ae408ea7128f0d2710b78d8623185198e7cb19c1), [`17e942e`](https://github.com/mastra-ai/mastra/commit/17e942eee2ba44985b1f807e6208cdde672f82f9), [`2015cf9`](https://github.com/mastra-ai/mastra/commit/2015cf921649f44c3f5bcd32a2c052335f8e49b4), [`7ef454e`](https://github.com/mastra-ai/mastra/commit/7ef454eaf9dcec6de60021c8f42192052dd490d6), [`2be1d99`](https://github.com/mastra-ai/mastra/commit/2be1d99564ce79acc4846071082bff353035a87a), [`2708fa1`](https://github.com/mastra-ai/mastra/commit/2708fa1055ac91c03e08b598869f6b8fb51fa37f), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ec53e89`](https://github.com/mastra-ai/mastra/commit/ec53e8939c76c638991e21af762e51378eff7543), [`9b5a8cb`](https://github.com/mastra-ai/mastra/commit/9b5a8cb13e120811b0bf14140ada314f1c067894), [`607e66b`](https://github.com/mastra-ai/mastra/commit/607e66b02dc7f531ee37799f3456aa2dc0ca7ac5), [`a215d06`](https://github.com/mastra-ai/mastra/commit/a215d06758dcf590eabfe0b7afd4ae39bdbf082c), [`6909c74`](https://github.com/mastra-ai/mastra/commit/6909c74a7781e0447d475e9dbc1dc871b700f426), [`192438f`](https://github.com/mastra-ai/mastra/commit/192438f8a90c4f375e955f8ff179bf8dc6821a83)]:
248
+ - @mastra/core@1.5.0
249
+
250
+ ## 1.5.0-alpha.0
251
+
252
+ ### Minor Changes
253
+
254
+ - Added workspace and skill storage domains with full CRUD, versioning, and implementations across LibSQL, Postgres, and MongoDB. Added `editor.workspace` and `editor.skill` namespaces for managing workspace configurations and skill definitions through the editor. Agents stored in the editor can now reference workspaces (by ID or inline config) and skills, with full hydration to runtime `Workspace` instances during agent resolution. ([#13156](https://github.com/mastra-ai/mastra/pull/13156))
255
+
256
+ **Filesystem-native skill versioning (draft → publish model):**
257
+
258
+ Skills are versioned as filesystem trees with content-addressable blob storage. The editing surface (live filesystem) is separated from the serving surface (versioned blob store), enabling a `draft → publish` workflow:
259
+ - `editor.skill.publish(skillId, source, skillPath)` — Snapshots a skill directory from the filesystem into blob storage, creates a new version with a tree manifest, and sets `activeVersionId`
260
+ - Version switching via `editor.skill.update({ id, activeVersionId })` — Points the skill to a previous version without re-publishing
261
+ - Publishing a skill automatically invalidates cached agents that reference it, so they re-hydrate with the updated version on next access
262
+
263
+ **Agent skill resolution strategies:**
264
+
265
+ Agents can reference skills with different resolution strategies:
266
+ - `strategy: 'latest'` — Resolves the skill's active version (honors `activeVersionId` for rollback)
267
+ - `pin: '<versionId>'` — Pins to a specific version, immune to publishes
268
+ - `strategy: 'live'` — Reads directly from the live filesystem (no blob store)
269
+
270
+ **Blob storage infrastructure:**
271
+ - `BlobStore` abstract class for content-addressable storage keyed by SHA-256 hash
272
+ - `InMemoryBlobStore` for testing
273
+ - LibSQL, Postgres, and MongoDB implementations
274
+ - `S3BlobStore` for storing blobs in S3 or S3-compatible storage (AWS, R2, MinIO, DO Spaces)
275
+ - `BlobStoreProvider` interface and `MastraEditorConfig.blobStores` registry for pluggable blob storage
276
+ - `VersionedSkillSource` and `CompositeVersionedSkillSource` for reading skill files from the blob store at runtime
277
+
278
+ **New storage types:**
279
+ - `StorageWorkspaceSnapshotType` and `StorageSkillSnapshotType` with corresponding input/output types
280
+ - `StorageWorkspaceRef` for ID-based or inline workspace references on agents
281
+ - `StorageSkillConfig` for per-agent skill overrides (`pin`, `strategy`, description, instructions)
282
+ - `SkillVersionTree` and `SkillVersionTreeEntry` for tree manifests
283
+ - `StorageBlobEntry` for content-addressable blob entries
284
+ - `SKILL_BLOBS_SCHEMA` for the `mastra_skill_blobs` table
285
+
286
+ **New editor namespaces:**
287
+ - `editor.workspace` — CRUD for workspace configs, plus `hydrateSnapshotToWorkspace()` for resolving to runtime `Workspace` instances
288
+ - `editor.skill` — CRUD for skill definitions, plus `publish()` for filesystem-to-blob snapshots
289
+
290
+ **Provider registries:**
291
+ - `MastraEditorConfig` accepts `filesystems`, `sandboxes`, and `blobStores` provider registries (keyed by provider ID)
292
+ - Built-in `local` filesystem and sandbox providers are auto-registered
293
+ - `editor.resolveBlobStore()` resolves from provider registry or falls back to the storage backend's blobs domain
294
+ - Providers expose `id`, `name`, `description`, `configSchema` (JSON Schema for UI form rendering), and a factory method
295
+
296
+ **Storage adapter support:**
297
+ - LibSQL: Full `workspaces`, `skills`, and `blobs` domain implementations
298
+ - Postgres: Full `workspaces`, `skills`, and `blobs` domain implementations
299
+ - MongoDB: Full `workspaces`, `skills`, and `blobs` domain implementations
300
+ - All three include `workspace`, `skills`, and `skillsFormat` fields on agent versions
301
+
302
+ **Server endpoints:**
303
+ - `GET/POST/PATCH/DELETE /stored/workspaces` — CRUD for stored workspaces
304
+ - `GET/POST/PATCH/DELETE /stored/skills` — CRUD for stored skills
305
+ - `POST /stored/skills/:id/publish` — Publish a skill from a filesystem source
306
+
307
+ ```ts
308
+ import { MastraEditor } from '@mastra/editor';
309
+ import { s3FilesystemProvider, s3BlobStoreProvider } from '@mastra/s3';
310
+ import { e2bSandboxProvider } from '@mastra/e2b';
311
+
312
+ const editor = new MastraEditor({
313
+ filesystems: { s3: s3FilesystemProvider },
314
+ sandboxes: { e2b: e2bSandboxProvider },
315
+ blobStores: { s3: s3BlobStoreProvider },
316
+ });
317
+
318
+ // Create a skill and publish it
319
+ const skill = await editor.skill.create({
320
+ name: 'Code Review',
321
+ description: 'Reviews code for best practices',
322
+ instructions: 'Analyze the code and provide feedback...',
323
+ });
324
+ await editor.skill.publish(skill.id, source, 'skills/code-review');
325
+
326
+ // Agents resolve skills by strategy
327
+ await editor.agent.create({
328
+ name: 'Dev Assistant',
329
+ model: { provider: 'openai', name: 'gpt-4' },
330
+ workspace: { type: 'id', workspaceId: workspace.id },
331
+ skills: { [skill.id]: { strategy: 'latest' } },
332
+ skillsFormat: 'xml',
333
+ });
334
+ ```
335
+
336
+ - Added draft/publish version management for all editor primitives (agents, scorers, MCP clients, prompt blocks). ([#13061](https://github.com/mastra-ai/mastra/pull/13061))
337
+
338
+ **Status filtering on list endpoints** — All list endpoints now accept a `?status=draft|published|archived` query parameter to filter by entity status. Defaults to `published` to preserve backward compatibility.
339
+
340
+ **Draft vs published resolution on get-by-id endpoints** — All get-by-id endpoints now accept `?status=draft` to resolve the entity with its latest (unpublished) version, or `?status=published` (default) to resolve with the active published version.
341
+
342
+ **Edits no longer auto-publish** — When updating any primitive, a new version is created but `activeVersionId` is no longer automatically updated. Edits stay as drafts until explicitly published via the activate endpoint.
343
+
344
+ **Full version management for all primitives** — Scorers, MCP clients, and prompt blocks now have the same version management API that agents have: list versions, create version snapshots, get specific versions, activate/publish, restore from a previous version, delete versions, and compare versions.
345
+
346
+ **New prompt block CRUD routes** — Prompt blocks now have full server routes (`GET /stored/prompt-blocks`, `GET /stored/prompt-blocks/:id`, `POST`, `PATCH`, `DELETE`).
347
+
348
+ **New version endpoints** — Each primitive now exposes 7 version management endpoints under `/stored/{type}/:id/versions` (list, create, get, activate, restore, delete, compare).
349
+
350
+ ```ts
351
+ // Fetch the published version (default behavior, backward compatible)
352
+ const published = await fetch('/api/stored/scorers/my-scorer');
353
+
354
+ // Fetch the draft version for editing in the UI
355
+ const draft = await fetch('/api/stored/scorers/my-scorer?status=draft');
356
+
357
+ // Publish a specific version
358
+ await fetch('/api/stored/scorers/my-scorer/versions/abc123/activate', { method: 'POST' });
359
+
360
+ // Compare two versions
361
+ const diff = await fetch('/api/stored/scorers/my-scorer/versions/compare?from=v1&to=v2');
362
+ ```
363
+
364
+ ### Patch Changes
365
+
366
+ - Dataset schemas now appear in the Edit Dataset dialog. Previously the `inputSchema` and `groundTruthSchema` fields were not passed to the dialog, so editing a dataset always showed empty schemas. ([#13175](https://github.com/mastra-ai/mastra/pull/13175))
367
+
368
+ Schema edits in the JSON editor no longer cause the cursor to jump to the top of the field. Typing `{"type": "object"}` in the schema editor now behaves like a normal text input instead of resetting on every keystroke.
369
+
370
+ Validation errors are now surfaced when updating a dataset schema that conflicts with existing items. For example, adding a `required: ["name"]` constraint when existing items lack a `name` field now shows "2 existing item(s) fail validation" in the dialog instead of silently dropping the error.
371
+
372
+ Disabling a dataset schema from the Studio UI now correctly clears it. Previously the server converted `null` (disable) to `undefined` (no change), so the old schema persisted and validation continued.
373
+
374
+ Workflow schemas fetched via `client.getWorkflow().getSchema()` are now correctly parsed. The server serializes schemas with `superjson`, but the client was using plain `JSON.parse`, yielding a `{json: {...}}` wrapper instead of the actual JSON Schema object.
375
+
376
+ - CMS draft support with status badges for agents. ([#13194](https://github.com/mastra-ai/mastra/pull/13194))
377
+ - Agent list now resolves the latest (draft) version for each stored agent, showing current edits rather than the last published state.
378
+ - Added `hasDraft` and `activeVersionId` fields to the agent list API response.
379
+ - Agent list badges: "Published" (green) when a published version exists, "Draft" (colored when unpublished changes exist, grayed out otherwise).
380
+ - Added `resolvedVersionId` to all `StorageResolved*Type` types so the server can detect whether the latest version differs from the active version.
381
+ - Added `status` option to `GetByIdOptions` to allow resolving draft vs published versions through the editor layer.
382
+ - Fixed editor cache not being cleared on version activate, restore, and delete — all four versioned domains (agents, scorers, prompt-blocks, mcp-clients) now clear the cache after version mutations.
383
+ - Added `ALTER TABLE` migration for `mastra_agent_versions` in libsql and pg to add newer columns (`mcpClients`, `requestContextSchema`, `workspace`, `skills`, `skillsFormat`).
384
+
385
+ - Added scorer version management and CMS draft/publish flow for scorers. ([#13194](https://github.com/mastra-ai/mastra/pull/13194))
386
+ - Added scorer version methods to the client SDK: `listVersions`, `createVersion`, `getVersion`, `activateVersion`, `restoreVersion`, `deleteVersion`, `compareVersions`.
387
+ - Added `ScorerVersionCombobox` for navigating scorer versions with Published/Draft labels.
388
+ - Scorer edit page now supports Save (draft) and Publish workflows with an "Unpublished changes" indicator.
389
+ - Storage list methods for agents and scorers no longer default to filtering only published entities, allowing drafts to appear in the playground.
390
+
391
+ - Updated dependencies [[`252580a`](https://github.com/mastra-ai/mastra/commit/252580a71feb0e46d0ccab04a70a79ff6a2ee0ab), [`f8e819f`](https://github.com/mastra-ai/mastra/commit/f8e819fabdfdc43d2da546a3ad81ba23685f603d), [`5c75261`](https://github.com/mastra-ai/mastra/commit/5c7526120d936757d4ffb7b82232e1641ebd45cb), [`e27d832`](https://github.com/mastra-ai/mastra/commit/e27d83281b5e166fd63a13969689e928d8605944), [`e37ef84`](https://github.com/mastra-ai/mastra/commit/e37ef8404043c94ca0c8e35ecdedb093b8087878), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`10cf521`](https://github.com/mastra-ai/mastra/commit/10cf52183344743a0d7babe24cd24fd78870c354), [`efdb682`](https://github.com/mastra-ai/mastra/commit/efdb682887f6522149769383908f9790c188ab88), [`0dee7a0`](https://github.com/mastra-ai/mastra/commit/0dee7a0ff4c2507e6eb6e6ee5f9738877ebd4ad1), [`04c2c8e`](https://github.com/mastra-ai/mastra/commit/04c2c8e888984364194131aecb490a3d6e920e61), [`02dc07a`](https://github.com/mastra-ai/mastra/commit/02dc07acc4ad42d93335825e3308f5b42266eba2), [`bb7262b`](https://github.com/mastra-ai/mastra/commit/bb7262b7c0ca76320d985b40510b6ffbbb936582), [`cf1c6e7`](https://github.com/mastra-ai/mastra/commit/cf1c6e789b131f55638fed52183a89d5078b4876), [`5ffadfe`](https://github.com/mastra-ai/mastra/commit/5ffadfefb1468ac2612b20bb84d24c39de6961c0), [`1e1339c`](https://github.com/mastra-ai/mastra/commit/1e1339cc276e571a48cfff5014487877086bfe68), [`d03df73`](https://github.com/mastra-ai/mastra/commit/d03df73f8fe9496064a33e1c3b74ba0479bf9ee6), [`79b8f45`](https://github.com/mastra-ai/mastra/commit/79b8f45a6767e1a5c3d56cd3c5b1214326b81661), [`9bbf08e`](https://github.com/mastra-ai/mastra/commit/9bbf08e3c20731c79dea13a765895b9fcf29cbf1), [`0a25952`](https://github.com/mastra-ai/mastra/commit/0a259526b5e1ac11e6efa53db1f140272962af2d), [`ffa5468`](https://github.com/mastra-ai/mastra/commit/ffa546857fc4821753979b3a34e13b4d76fbbcd4), [`3264a04`](https://github.com/mastra-ai/mastra/commit/3264a04e30340c3c5447433300a035ea0878df85), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`088d9ba`](https://github.com/mastra-ai/mastra/commit/088d9ba2577518703c52b0dccd617178d9ee6b0d), [`74fbebd`](https://github.com/mastra-ai/mastra/commit/74fbebd918a03832a2864965a8bea59bf617d3a2), [`aea6217`](https://github.com/mastra-ai/mastra/commit/aea621790bfb2291431b08da0cc5e6e150303ae7), [`b6a855e`](https://github.com/mastra-ai/mastra/commit/b6a855edc056e088279075506442ba1d6fa6def9), [`ae408ea`](https://github.com/mastra-ai/mastra/commit/ae408ea7128f0d2710b78d8623185198e7cb19c1), [`17e942e`](https://github.com/mastra-ai/mastra/commit/17e942eee2ba44985b1f807e6208cdde672f82f9), [`2015cf9`](https://github.com/mastra-ai/mastra/commit/2015cf921649f44c3f5bcd32a2c052335f8e49b4), [`7ef454e`](https://github.com/mastra-ai/mastra/commit/7ef454eaf9dcec6de60021c8f42192052dd490d6), [`2be1d99`](https://github.com/mastra-ai/mastra/commit/2be1d99564ce79acc4846071082bff353035a87a), [`2708fa1`](https://github.com/mastra-ai/mastra/commit/2708fa1055ac91c03e08b598869f6b8fb51fa37f), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ec53e89`](https://github.com/mastra-ai/mastra/commit/ec53e8939c76c638991e21af762e51378eff7543), [`9b5a8cb`](https://github.com/mastra-ai/mastra/commit/9b5a8cb13e120811b0bf14140ada314f1c067894), [`607e66b`](https://github.com/mastra-ai/mastra/commit/607e66b02dc7f531ee37799f3456aa2dc0ca7ac5), [`a215d06`](https://github.com/mastra-ai/mastra/commit/a215d06758dcf590eabfe0b7afd4ae39bdbf082c), [`6909c74`](https://github.com/mastra-ai/mastra/commit/6909c74a7781e0447d475e9dbc1dc871b700f426), [`192438f`](https://github.com/mastra-ai/mastra/commit/192438f8a90c4f375e955f8ff179bf8dc6821a83)]:
392
+ - @mastra/core@1.5.0-alpha.0
393
+
394
+ ## 1.4.0
395
+
396
+ ### Minor Changes
397
+
398
+ - Added datasets and experiments storage implementations. Includes dataset CRUD, item versioning with SCD-2, experiment runs with scorer results, and table/type configurations for dataset and experiment tables. ([#12747](https://github.com/mastra-ai/mastra/pull/12747))
399
+
400
+ **Requires `@mastra/core` >= 1.4.0**
401
+
402
+ ### Patch Changes
403
+
404
+ - Fixed agent version storage to persist the requestContextSchema field. Previously, requestContextSchema was defined on the agent snapshot type but was not included in the database schema, INSERT statements, or row parsing logic, causing it to be silently dropped when saving and loading agent versions. ([#13003](https://github.com/mastra-ai/mastra/pull/13003))
405
+
406
+ - Added MCP client storage domain and ToolProvider interface for integrating external tool catalogs with stored agents. ([#12974](https://github.com/mastra-ai/mastra/pull/12974))
407
+
408
+ **MCP Client Storage**
409
+
410
+ New storage domain for persisting MCP client configurations with CRUD operations. Each MCP client can contain multiple servers with independent tool selection:
411
+
412
+ ```ts
413
+ // Store an MCP client with multiple servers
414
+ await storage.mcpClients.create({
415
+ id: 'my-mcp',
416
+ name: 'My MCP Client',
417
+ servers: {
418
+ 'github-server': { url: 'https://mcp.github.com/sse' },
419
+ 'slack-server': { url: 'https://mcp.slack.com/sse' },
420
+ },
421
+ });
422
+ ```
423
+
424
+ LibSQL, PostgreSQL, and MongoDB storage adapters all implement the new MCP client domain.
425
+
426
+ **ToolProvider Interface**
427
+
428
+ New `ToolProvider` interface at `@mastra/core/tool-provider` enables third-party tool catalog integration (e.g., Composio, Arcade AI):
429
+
430
+ ```ts
431
+ import type { ToolProvider } from '@mastra/core/tool-provider';
432
+
433
+ # Providers implement: listToolkits(), listTools(), getToolSchema(), resolveTools()
434
+ ```
435
+
436
+ `resolveTools()` receives `requestContext` from the current request, enabling per-user API keys and credentials in multi-tenant setups:
437
+
438
+ ```ts
439
+ const tools = await provider.resolveTools(slugs, configs, {
440
+ requestContext: { apiKey: 'user-specific-key', userId: 'tenant-123' },
441
+ });
442
+ ```
443
+
444
+ **Tool Selection Semantics**
445
+
446
+ Both `mcpClients` and `integrationTools` on stored agents follow consistent three-state selection:
447
+ - `{ tools: undefined }` — provider registered, no tools selected
448
+ - `{ tools: {} }` — all tools from provider included
449
+ - `{ tools: { 'TOOL_SLUG': { description: '...' } } }` — specific tools with optional overrides
450
+
451
+ - Updated dependencies [[`7ef618f`](https://github.com/mastra-ai/mastra/commit/7ef618f3c49c27e2f6b27d7f564c557c0734325b), [`b373564`](https://github.com/mastra-ai/mastra/commit/b37356491d43b4d53067f10cb669abaf2502f218), [`927c2af`](https://github.com/mastra-ai/mastra/commit/927c2af9792286c122e04409efce0f3c804f777f), [`b896b41`](https://github.com/mastra-ai/mastra/commit/b896b41343de7fcc14442fb40fe82d189e65bbe2), [`6415277`](https://github.com/mastra-ai/mastra/commit/6415277a438faa00db2af850ead5dee25f40c428), [`0831bbb`](https://github.com/mastra-ai/mastra/commit/0831bbb5bc750c18e9b22b45f18687c964b70828), [`63f7eda`](https://github.com/mastra-ai/mastra/commit/63f7eda605eb3e0c8c35ee3912ffe7c999c69f69), [`a5b67a3`](https://github.com/mastra-ai/mastra/commit/a5b67a3589a74415feb663a55d1858324a2afde9), [`877b02c`](https://github.com/mastra-ai/mastra/commit/877b02cdbb15e199184c7f2b8f217be8d3ebada7), [`7567222`](https://github.com/mastra-ai/mastra/commit/7567222b1366f0d39980594792dd9d5060bfe2ab), [`af71458`](https://github.com/mastra-ai/mastra/commit/af71458e3b566f09c11d0e5a0a836dc818e7a24a), [`eb36bd8`](https://github.com/mastra-ai/mastra/commit/eb36bd8c52fcd6ec9674ac3b7a6412405b5983e1), [`3cbf121`](https://github.com/mastra-ai/mastra/commit/3cbf121f55418141924754a83102aade89835947)]:
452
+ - @mastra/core@1.4.0
453
+
454
+ ## 1.4.0-alpha.0
455
+
456
+ ### Minor Changes
457
+
458
+ - Added datasets and experiments storage implementations. Includes dataset CRUD, item versioning with SCD-2, experiment runs with scorer results, and table/type configurations for dataset and experiment tables. ([#12747](https://github.com/mastra-ai/mastra/pull/12747))
459
+
460
+ **Requires `@mastra/core` >= 1.4.0**
461
+
462
+ ### Patch Changes
463
+
464
+ - Fixed agent version storage to persist the requestContextSchema field. Previously, requestContextSchema was defined on the agent snapshot type but was not included in the database schema, INSERT statements, or row parsing logic, causing it to be silently dropped when saving and loading agent versions. ([#13003](https://github.com/mastra-ai/mastra/pull/13003))
465
+
466
+ - Added MCP client storage domain and ToolProvider interface for integrating external tool catalogs with stored agents. ([#12974](https://github.com/mastra-ai/mastra/pull/12974))
467
+
468
+ **MCP Client Storage**
469
+
470
+ New storage domain for persisting MCP client configurations with CRUD operations. Each MCP client can contain multiple servers with independent tool selection:
471
+
472
+ ```ts
473
+ // Store an MCP client with multiple servers
474
+ await storage.mcpClients.create({
475
+ id: 'my-mcp',
476
+ name: 'My MCP Client',
477
+ servers: {
478
+ 'github-server': { url: 'https://mcp.github.com/sse' },
479
+ 'slack-server': { url: 'https://mcp.slack.com/sse' },
480
+ },
481
+ });
482
+ ```
483
+
484
+ LibSQL, PostgreSQL, and MongoDB storage adapters all implement the new MCP client domain.
485
+
486
+ **ToolProvider Interface**
487
+
488
+ New `ToolProvider` interface at `@mastra/core/tool-provider` enables third-party tool catalog integration (e.g., Composio, Arcade AI):
489
+
490
+ ```ts
491
+ import type { ToolProvider } from '@mastra/core/tool-provider';
492
+
493
+ # Providers implement: listToolkits(), listTools(), getToolSchema(), resolveTools()
494
+ ```
495
+
496
+ `resolveTools()` receives `requestContext` from the current request, enabling per-user API keys and credentials in multi-tenant setups:
497
+
498
+ ```ts
499
+ const tools = await provider.resolveTools(slugs, configs, {
500
+ requestContext: { apiKey: 'user-specific-key', userId: 'tenant-123' },
501
+ });
502
+ ```
503
+
504
+ **Tool Selection Semantics**
505
+
506
+ Both `mcpClients` and `integrationTools` on stored agents follow consistent three-state selection:
507
+ - `{ tools: undefined }` — provider registered, no tools selected
508
+ - `{ tools: {} }` — all tools from provider included
509
+ - `{ tools: { 'TOOL_SLUG': { description: '...' } } }` — specific tools with optional overrides
510
+
511
+ - Updated dependencies [[`7ef618f`](https://github.com/mastra-ai/mastra/commit/7ef618f3c49c27e2f6b27d7f564c557c0734325b), [`b373564`](https://github.com/mastra-ai/mastra/commit/b37356491d43b4d53067f10cb669abaf2502f218), [`927c2af`](https://github.com/mastra-ai/mastra/commit/927c2af9792286c122e04409efce0f3c804f777f), [`b896b41`](https://github.com/mastra-ai/mastra/commit/b896b41343de7fcc14442fb40fe82d189e65bbe2), [`6415277`](https://github.com/mastra-ai/mastra/commit/6415277a438faa00db2af850ead5dee25f40c428), [`0831bbb`](https://github.com/mastra-ai/mastra/commit/0831bbb5bc750c18e9b22b45f18687c964b70828), [`63f7eda`](https://github.com/mastra-ai/mastra/commit/63f7eda605eb3e0c8c35ee3912ffe7c999c69f69), [`a5b67a3`](https://github.com/mastra-ai/mastra/commit/a5b67a3589a74415feb663a55d1858324a2afde9), [`877b02c`](https://github.com/mastra-ai/mastra/commit/877b02cdbb15e199184c7f2b8f217be8d3ebada7), [`7567222`](https://github.com/mastra-ai/mastra/commit/7567222b1366f0d39980594792dd9d5060bfe2ab), [`af71458`](https://github.com/mastra-ai/mastra/commit/af71458e3b566f09c11d0e5a0a836dc818e7a24a), [`eb36bd8`](https://github.com/mastra-ai/mastra/commit/eb36bd8c52fcd6ec9674ac3b7a6412405b5983e1), [`3cbf121`](https://github.com/mastra-ai/mastra/commit/3cbf121f55418141924754a83102aade89835947)]:
512
+ - @mastra/core@1.4.0-alpha.0
513
+
514
+ ## 1.3.0
515
+
516
+ ### Minor Changes
517
+
518
+ - **Updated storage adapters for generic storage domain API** ([#12846](https://github.com/mastra-ai/mastra/pull/12846))
519
+
520
+ All storage adapters now implement the unified `VersionedStorageDomain` method names. Entity-specific methods (`createAgent`, `getAgentById`, `deleteAgent`, etc.) have been replaced with generic equivalents (`create`, `getById`, `delete`, etc.) across agents, prompt blocks, and scorer definitions domains.
521
+
522
+ Added `scorer-definitions` domain support to all adapters.
523
+
524
+ **Before:**
525
+
526
+ ```ts
527
+ const store = storage.getStore('agents');
528
+ await store.createAgent({ agent: input });
529
+ await store.getAgentById({ id: 'abc' });
530
+ await store.deleteAgent({ id: 'abc' });
531
+ ```
532
+
533
+ **After:**
534
+
535
+ ```ts
536
+ const store = storage.getStore('agents');
537
+ await store.create({ agent: input });
538
+ await store.getById('abc');
539
+ await store.delete('abc');
540
+ ```
541
+
542
+ ### Patch Changes
543
+
544
+ - Fixed observational memory progress bars resetting to zero after agent responses finish. ([#12934](https://github.com/mastra-ai/mastra/pull/12934))
545
+
546
+ - Fixed issues with stored agents ([#12790](https://github.com/mastra-ai/mastra/pull/12790))
547
+
548
+ - Supporting changes for async buffering in observational memory, including new config options, streaming events, and UI markers. ([#12891](https://github.com/mastra-ai/mastra/pull/12891))
549
+
550
+ - Added prompt block storage implementations. Each store supports full CRUD for prompt blocks and their versions, including JSON serialization for rules and metadata. Also updated agent instructions serialization to support the new `AgentInstructionBlock` array format alongside plain strings. ([#12776](https://github.com/mastra-ai/mastra/pull/12776))
551
+
552
+ - Updated dependencies [[`717ffab`](https://github.com/mastra-ai/mastra/commit/717ffab42cfd58ff723b5c19ada4939997773004), [`b31c922`](https://github.com/mastra-ai/mastra/commit/b31c922215b513791d98feaea1b98784aa00803a), [`e4b6dab`](https://github.com/mastra-ai/mastra/commit/e4b6dab171c5960e340b3ea3ea6da8d64d2b8672), [`5719fa8`](https://github.com/mastra-ai/mastra/commit/5719fa8880e86e8affe698ec4b3807c7e0e0a06f), [`83cda45`](https://github.com/mastra-ai/mastra/commit/83cda4523e588558466892bff8f80f631a36945a), [`11804ad`](https://github.com/mastra-ai/mastra/commit/11804adf1d6be46ebe216be40a43b39bb8b397d7), [`aa95f95`](https://github.com/mastra-ai/mastra/commit/aa95f958b186ae5c9f4219c88e268f5565c277a2), [`90f7894`](https://github.com/mastra-ai/mastra/commit/90f7894568dc9481f40a4d29672234fae23090bb), [`f5501ae`](https://github.com/mastra-ai/mastra/commit/f5501aedb0a11106c7db7e480d6eaf3971b7bda8), [`44573af`](https://github.com/mastra-ai/mastra/commit/44573afad0a4bc86f627d6cbc0207961cdcb3bc3), [`00e3861`](https://github.com/mastra-ai/mastra/commit/00e3861863fbfee78faeb1ebbdc7c0223aae13ff), [`8109aee`](https://github.com/mastra-ai/mastra/commit/8109aeeab758e16cd4255a6c36f044b70eefc6a6), [`7bfbc52`](https://github.com/mastra-ai/mastra/commit/7bfbc52a8604feb0fff2c0a082c13c0c2a3df1a2), [`1445994`](https://github.com/mastra-ai/mastra/commit/1445994aee19c9334a6a101cf7bd80ca7ed4d186), [`61f44a2`](https://github.com/mastra-ai/mastra/commit/61f44a26861c89e364f367ff40825bdb7f19df55), [`37145d2`](https://github.com/mastra-ai/mastra/commit/37145d25f99dc31f1a9105576e5452609843ce32), [`fdad759`](https://github.com/mastra-ai/mastra/commit/fdad75939ff008b27625f5ec0ce9c6915d99d9ec), [`e4569c5`](https://github.com/mastra-ai/mastra/commit/e4569c589e00c4061a686c9eb85afe1b7050b0a8), [`7309a85`](https://github.com/mastra-ai/mastra/commit/7309a85427281a8be23f4fb80ca52e18eaffd596), [`99424f6`](https://github.com/mastra-ai/mastra/commit/99424f6862ffb679c4ec6765501486034754a4c2), [`44eb452`](https://github.com/mastra-ai/mastra/commit/44eb4529b10603c279688318bebf3048543a1d61), [`6c40593`](https://github.com/mastra-ai/mastra/commit/6c40593d6d2b1b68b0c45d1a3a4c6ac5ecac3937), [`8c1135d`](https://github.com/mastra-ai/mastra/commit/8c1135dfb91b057283eae7ee11f9ec28753cc64f), [`dd39e54`](https://github.com/mastra-ai/mastra/commit/dd39e54ea34532c995b33bee6e0e808bf41a7341), [`b6fad9a`](https://github.com/mastra-ai/mastra/commit/b6fad9a602182b1cc0df47cd8c55004fa829ad61), [`4129c07`](https://github.com/mastra-ai/mastra/commit/4129c073349b5a66643fd8136ebfe9d7097cf793), [`5b930ab`](https://github.com/mastra-ai/mastra/commit/5b930aba1834d9898e8460a49d15106f31ac7c8d), [`4be93d0`](https://github.com/mastra-ai/mastra/commit/4be93d09d68e20aaf0ea3f210749422719618b5f), [`047635c`](https://github.com/mastra-ai/mastra/commit/047635ccd7861d726c62d135560c0022a5490aec), [`8c90ff4`](https://github.com/mastra-ai/mastra/commit/8c90ff4d3414e7f2a2d216ea91274644f7b29133), [`ed232d1`](https://github.com/mastra-ai/mastra/commit/ed232d1583f403925dc5ae45f7bee948cf2a182b), [`3891795`](https://github.com/mastra-ai/mastra/commit/38917953518eb4154a984ee36e6ededdcfe80f72), [`4f955b2`](https://github.com/mastra-ai/mastra/commit/4f955b20c7f66ed282ee1fd8709696fa64c4f19d), [`55a4c90`](https://github.com/mastra-ai/mastra/commit/55a4c9044ac7454349b9f6aeba0bbab5ee65d10f)]:
553
+ - @mastra/core@1.3.0
554
+
555
+ ## 1.3.0-alpha.1
556
+
557
+ ### Patch Changes
558
+
559
+ - Fixed observational memory progress bars resetting to zero after agent responses finish. The messages and observations sidebar bars now retain their values on stream completion, cancellation, and page reload. Also added a buffer-status endpoint so buffering badges resolve with accurate token counts instead of spinning forever when buffering outlives the stream. ([#12934](https://github.com/mastra-ai/mastra/pull/12934))
560
+
561
+ - Updated dependencies [[`b31c922`](https://github.com/mastra-ai/mastra/commit/b31c922215b513791d98feaea1b98784aa00803a)]:
562
+ - @mastra/core@1.3.0-alpha.2
563
+
564
+ ## 1.3.0-alpha.0
565
+
566
+ ### Minor Changes
567
+
568
+ - **Updated storage adapters for generic storage domain API** ([#12846](https://github.com/mastra-ai/mastra/pull/12846))
569
+
570
+ All storage adapters now implement the unified `VersionedStorageDomain` method names. Entity-specific methods (`createAgent`, `getAgentById`, `deleteAgent`, etc.) have been replaced with generic equivalents (`create`, `getById`, `delete`, etc.) across agents, prompt blocks, and scorer definitions domains.
571
+
572
+ Added `scorer-definitions` domain support to all adapters.
573
+
574
+ **Before:**
575
+
576
+ ```ts
577
+ const store = storage.getStore('agents');
578
+ await store.createAgent({ agent: input });
579
+ await store.getAgentById({ id: 'abc' });
580
+ await store.deleteAgent({ id: 'abc' });
581
+ ```
582
+
583
+ **After:**
584
+
585
+ ```ts
586
+ const store = storage.getStore('agents');
587
+ await store.create({ agent: input });
588
+ await store.getById('abc');
589
+ await store.delete('abc');
590
+ ```
591
+
592
+ ### Patch Changes
593
+
594
+ - Fixed issues with stored agents ([#12790](https://github.com/mastra-ai/mastra/pull/12790))
595
+
596
+ - **Async buffering for observational memory is now enabled by default.** Observations are pre-computed in the background as conversations grow — when the context window fills up, buffered observations activate instantly with no blocking LLM call. This keeps agents responsive during long conversations. ([#12891](https://github.com/mastra-ai/mastra/pull/12891))
597
+
598
+ **Default settings:**
599
+ - `observation.bufferTokens: 0.2` — buffer every 20% of `messageTokens` (~6k tokens with the default 30k threshold)
600
+ - `observation.bufferActivation: 0.8` — on activation, retain 20% of the message window
601
+ - `reflection.bufferActivation: 0.5` — start background reflection at 50% of the observation threshold
602
+
603
+ **Disabling async buffering:**
604
+
605
+ Set `observation.bufferTokens: false` to disable async buffering for both observations and reflections:
606
+
607
+ ```ts
608
+ const memory = new Memory({
609
+ options: {
610
+ observationalMemory: {
611
+ model: 'google/gemini-2.5-flash',
612
+ observation: {
613
+ bufferTokens: false,
614
+ },
615
+ },
616
+ },
617
+ });
618
+ ```
619
+
620
+ **Model is now required** when passing an observational memory config object. Use `observationalMemory: true` for the default (google/gemini-2.5-flash), or set a model explicitly:
621
+
622
+ ```ts
623
+ // Uses default model (google/gemini-2.5-flash)
624
+ observationalMemory: true
625
+
626
+ // Explicit model
627
+ observationalMemory: {
628
+ model: "google/gemini-2.5-flash",
629
+ }
630
+ ```
631
+
632
+ **`shareTokenBudget` requires `bufferTokens: false`** (temporary limitation). If you use `shareTokenBudget: true`, you must explicitly disable async buffering:
633
+
634
+ ```ts
635
+ observationalMemory: {
636
+ model: "google/gemini-2.5-flash",
637
+ shareTokenBudget: true,
638
+ observation: { bufferTokens: false },
639
+ }
640
+ ```
641
+
642
+ **New streaming event:** `data-om-status` replaces `data-om-progress` with a structured status object containing active window usage, buffered observation/reflection state, and projected activation impact.
643
+
644
+ **Buffering markers:** New `data-om-buffering-start`, `data-om-buffering-end`, and `data-om-buffering-failed` streaming events for UI feedback during background operations.
645
+
646
+ - Added prompt block storage implementations. Each store supports full CRUD for prompt blocks and their versions, including JSON serialization for rules and metadata. Also updated agent instructions serialization to support the new `AgentInstructionBlock` array format alongside plain strings. ([#12776](https://github.com/mastra-ai/mastra/pull/12776))
647
+
648
+ - Updated dependencies [[`717ffab`](https://github.com/mastra-ai/mastra/commit/717ffab42cfd58ff723b5c19ada4939997773004), [`e4b6dab`](https://github.com/mastra-ai/mastra/commit/e4b6dab171c5960e340b3ea3ea6da8d64d2b8672), [`5719fa8`](https://github.com/mastra-ai/mastra/commit/5719fa8880e86e8affe698ec4b3807c7e0e0a06f), [`83cda45`](https://github.com/mastra-ai/mastra/commit/83cda4523e588558466892bff8f80f631a36945a), [`11804ad`](https://github.com/mastra-ai/mastra/commit/11804adf1d6be46ebe216be40a43b39bb8b397d7), [`aa95f95`](https://github.com/mastra-ai/mastra/commit/aa95f958b186ae5c9f4219c88e268f5565c277a2), [`f5501ae`](https://github.com/mastra-ai/mastra/commit/f5501aedb0a11106c7db7e480d6eaf3971b7bda8), [`44573af`](https://github.com/mastra-ai/mastra/commit/44573afad0a4bc86f627d6cbc0207961cdcb3bc3), [`00e3861`](https://github.com/mastra-ai/mastra/commit/00e3861863fbfee78faeb1ebbdc7c0223aae13ff), [`7bfbc52`](https://github.com/mastra-ai/mastra/commit/7bfbc52a8604feb0fff2c0a082c13c0c2a3df1a2), [`1445994`](https://github.com/mastra-ai/mastra/commit/1445994aee19c9334a6a101cf7bd80ca7ed4d186), [`61f44a2`](https://github.com/mastra-ai/mastra/commit/61f44a26861c89e364f367ff40825bdb7f19df55), [`37145d2`](https://github.com/mastra-ai/mastra/commit/37145d25f99dc31f1a9105576e5452609843ce32), [`fdad759`](https://github.com/mastra-ai/mastra/commit/fdad75939ff008b27625f5ec0ce9c6915d99d9ec), [`e4569c5`](https://github.com/mastra-ai/mastra/commit/e4569c589e00c4061a686c9eb85afe1b7050b0a8), [`7309a85`](https://github.com/mastra-ai/mastra/commit/7309a85427281a8be23f4fb80ca52e18eaffd596), [`99424f6`](https://github.com/mastra-ai/mastra/commit/99424f6862ffb679c4ec6765501486034754a4c2), [`44eb452`](https://github.com/mastra-ai/mastra/commit/44eb4529b10603c279688318bebf3048543a1d61), [`6c40593`](https://github.com/mastra-ai/mastra/commit/6c40593d6d2b1b68b0c45d1a3a4c6ac5ecac3937), [`8c1135d`](https://github.com/mastra-ai/mastra/commit/8c1135dfb91b057283eae7ee11f9ec28753cc64f), [`dd39e54`](https://github.com/mastra-ai/mastra/commit/dd39e54ea34532c995b33bee6e0e808bf41a7341), [`b6fad9a`](https://github.com/mastra-ai/mastra/commit/b6fad9a602182b1cc0df47cd8c55004fa829ad61), [`4129c07`](https://github.com/mastra-ai/mastra/commit/4129c073349b5a66643fd8136ebfe9d7097cf793), [`5b930ab`](https://github.com/mastra-ai/mastra/commit/5b930aba1834d9898e8460a49d15106f31ac7c8d), [`4be93d0`](https://github.com/mastra-ai/mastra/commit/4be93d09d68e20aaf0ea3f210749422719618b5f), [`047635c`](https://github.com/mastra-ai/mastra/commit/047635ccd7861d726c62d135560c0022a5490aec), [`8c90ff4`](https://github.com/mastra-ai/mastra/commit/8c90ff4d3414e7f2a2d216ea91274644f7b29133), [`ed232d1`](https://github.com/mastra-ai/mastra/commit/ed232d1583f403925dc5ae45f7bee948cf2a182b), [`3891795`](https://github.com/mastra-ai/mastra/commit/38917953518eb4154a984ee36e6ededdcfe80f72), [`4f955b2`](https://github.com/mastra-ai/mastra/commit/4f955b20c7f66ed282ee1fd8709696fa64c4f19d), [`55a4c90`](https://github.com/mastra-ai/mastra/commit/55a4c9044ac7454349b9f6aeba0bbab5ee65d10f)]:
649
+ - @mastra/core@1.3.0-alpha.1
650
+
651
+ ## 1.2.0
652
+
653
+ ### Minor Changes
654
+
655
+ - Added Observational Memory — a new memory system that keeps your agent's context window small while preserving long-term memory across conversations. ([#12599](https://github.com/mastra-ai/mastra/pull/12599))
656
+
657
+ **Why:** Long conversations cause context rot and waste tokens. Observational Memory compresses conversation history into observations (5–40x compression) and periodically condenses those into reflections. Your agent stays fast and focused, even after thousands of messages.
658
+
659
+ **Usage:**
660
+
661
+ ```ts
662
+ import { Memory } from '@mastra/memory';
663
+ import { PostgresStore } from '@mastra/pg';
664
+
665
+ const memory = new Memory({
666
+ storage: new PostgresStore({ connectionString: process.env.DATABASE_URL }),
667
+ options: {
668
+ observationalMemory: true,
669
+ },
670
+ });
671
+
672
+ const agent = new Agent({
673
+ name: 'my-agent',
674
+ model: openai('gpt-4o'),
675
+ memory,
676
+ });
677
+ ```
678
+
679
+ **What's new:**
680
+ - `observationalMemory: true` enables the three-tier memory system (recent messages → observations → reflections)
681
+ - Thread-scoped (per-conversation) and resource-scoped (shared across all threads for a user) modes
682
+ - Manual `observe()` API for triggering observation outside the normal agent loop
683
+ - New OM storage methods for pg, libsql, and mongodb adapters (conditionally enabled)
684
+ - `Agent.findProcessor()` method for looking up processors by ID
685
+ - `processorStates` for persisting processor state across loop iterations
686
+ - Abort signal propagation to processors
687
+ - `ProcessorStreamWriter` for custom stream events from processors
688
+
689
+ ### Patch Changes
690
+
691
+ - Created @mastra/editor package for managing and resolving stored agent configurations ([#12631](https://github.com/mastra-ai/mastra/pull/12631))
692
+
693
+ This major addition introduces the editor package, which provides a complete solution for storing, versioning, and instantiating agent configurations from a database. The editor seamlessly integrates with Mastra's storage layer to enable dynamic agent management.
694
+
695
+ **Key Features:**
696
+ - **Agent Storage & Retrieval**: Store complete agent configurations including instructions, model settings, tools, workflows, nested agents, scorers, processors, and memory configuration
697
+ - **Version Management**: Create and manage multiple versions of agents, with support for activating specific versions
698
+ - **Dependency Resolution**: Automatically resolves and instantiates all agent dependencies (tools, workflows, sub-agents, etc.) from the Mastra registry
699
+ - **Caching**: Built-in caching for improved performance when repeatedly accessing stored agents
700
+ - **Type Safety**: Full TypeScript support with proper typing for stored configurations
701
+
702
+ **Usage Example:**
703
+
704
+ ```typescript
705
+ import { MastraEditor } from '@mastra/editor';
706
+ import { Mastra } from '@mastra/core';
707
+
708
+ // Initialize editor with Mastra
709
+ const mastra = new Mastra({
710
+ /* config */
711
+ editor: new MastraEditor(),
712
+ });
713
+
714
+ // Store an agent configuration
715
+ const agentId = await mastra.storage.stores?.agents?.createAgent({
716
+ name: 'customer-support',
717
+ instructions: 'Help customers with inquiries',
718
+ model: { provider: 'openai', name: 'gpt-4' },
719
+ tools: ['search-kb', 'create-ticket'],
720
+ workflows: ['escalation-flow'],
721
+ memory: { vector: 'pinecone-db' },
722
+ });
723
+
724
+ // Retrieve and use the stored agent
725
+ const agent = await mastra.getEditor()?.getStoredAgentById(agentId);
726
+ const response = await agent?.generate('How do I reset my password?');
727
+
728
+ // List all stored agents
729
+ const agents = await mastra.getEditor()?.listStoredAgents({ pageSize: 10 });
730
+ ```
731
+
732
+ **Storage Improvements:**
733
+ - Fixed JSONB handling in LibSQL, PostgreSQL, and MongoDB adapters
734
+ - Improved agent resolution queries to properly merge version data
735
+ - Enhanced type safety for serialized configurations
736
+
737
+ - Updated dependencies [[`e6fc281`](https://github.com/mastra-ai/mastra/commit/e6fc281896a3584e9e06465b356a44fe7faade65), [`97be6c8`](https://github.com/mastra-ai/mastra/commit/97be6c8963130fca8a664fcf99d7b3a38e463595), [`2770921`](https://github.com/mastra-ai/mastra/commit/2770921eec4d55a36b278d15c3a83f694e462ee5), [`b1695db`](https://github.com/mastra-ai/mastra/commit/b1695db2d7be0c329d499619c7881899649188d0), [`5fe1fe0`](https://github.com/mastra-ai/mastra/commit/5fe1fe0109faf2c87db34b725d8a4571a594f80e), [`4133d48`](https://github.com/mastra-ai/mastra/commit/4133d48eaa354cdb45920dc6265732ffbc96788d), [`5dd01cc`](https://github.com/mastra-ai/mastra/commit/5dd01cce68d61874aa3ecbd91ee17884cfd5aca2), [`13e0a2a`](https://github.com/mastra-ai/mastra/commit/13e0a2a2bcec01ff4d701274b3727d5e907a6a01), [`f6673b8`](https://github.com/mastra-ai/mastra/commit/f6673b893b65b7d273ad25ead42e990704cc1e17), [`cd6be8a`](https://github.com/mastra-ai/mastra/commit/cd6be8ad32741cd41cabf508355bb31b71e8a5bd), [`9eb4e8e`](https://github.com/mastra-ai/mastra/commit/9eb4e8e39efbdcfff7a40ff2ce07ce2714c65fa8), [`c987384`](https://github.com/mastra-ai/mastra/commit/c987384d6c8ca844a9701d7778f09f5a88da7f9f), [`cb8cc12`](https://github.com/mastra-ai/mastra/commit/cb8cc12bfadd526aa95a01125076f1da44e4afa7), [`aa37c84`](https://github.com/mastra-ai/mastra/commit/aa37c84d29b7db68c72517337932ef486c316275), [`62f5d50`](https://github.com/mastra-ai/mastra/commit/62f5d5043debbba497dacb7ab008fe86b38b8de3), [`47eba72`](https://github.com/mastra-ai/mastra/commit/47eba72f0397d0d14fbe324b97940c3d55e5a525)]:
738
+ - @mastra/core@1.2.0
739
+
740
+ ## 1.2.0-alpha.0
741
+
742
+ ### Minor Changes
743
+
744
+ - Added Observational Memory — a new memory system that keeps your agent's context window small while preserving long-term memory across conversations. ([#12599](https://github.com/mastra-ai/mastra/pull/12599))
745
+
746
+ **Why:** Long conversations cause context rot and waste tokens. Observational Memory compresses conversation history into observations (5–40x compression) and periodically condenses those into reflections. Your agent stays fast and focused, even after thousands of messages.
747
+
748
+ **Usage:**
749
+
750
+ ```ts
751
+ import { Memory } from '@mastra/memory';
752
+ import { PostgresStore } from '@mastra/pg';
753
+
754
+ const memory = new Memory({
755
+ storage: new PostgresStore({ connectionString: process.env.DATABASE_URL }),
756
+ options: {
757
+ observationalMemory: true,
758
+ },
759
+ });
760
+
761
+ const agent = new Agent({
762
+ name: 'my-agent',
763
+ model: openai('gpt-4o'),
764
+ memory,
765
+ });
766
+ ```
767
+
768
+ **What's new:**
769
+ - `observationalMemory: true` enables the three-tier memory system (recent messages → observations → reflections)
770
+ - Thread-scoped (per-conversation) and resource-scoped (shared across all threads for a user) modes
771
+ - Manual `observe()` API for triggering observation outside the normal agent loop
772
+ - New OM storage methods for pg, libsql, and mongodb adapters (conditionally enabled)
773
+ - `Agent.findProcessor()` method for looking up processors by ID
774
+ - `processorStates` for persisting processor state across loop iterations
775
+ - Abort signal propagation to processors
776
+ - `ProcessorStreamWriter` for custom stream events from processors
777
+
778
+ ### Patch Changes
779
+
780
+ - Created @mastra/editor package for managing and resolving stored agent configurations ([#12631](https://github.com/mastra-ai/mastra/pull/12631))
781
+
782
+ This major addition introduces the editor package, which provides a complete solution for storing, versioning, and instantiating agent configurations from a database. The editor seamlessly integrates with Mastra's storage layer to enable dynamic agent management.
783
+
784
+ **Key Features:**
785
+ - **Agent Storage & Retrieval**: Store complete agent configurations including instructions, model settings, tools, workflows, nested agents, scorers, processors, and memory configuration
786
+ - **Version Management**: Create and manage multiple versions of agents, with support for activating specific versions
787
+ - **Dependency Resolution**: Automatically resolves and instantiates all agent dependencies (tools, workflows, sub-agents, etc.) from the Mastra registry
788
+ - **Caching**: Built-in caching for improved performance when repeatedly accessing stored agents
789
+ - **Type Safety**: Full TypeScript support with proper typing for stored configurations
790
+
791
+ **Usage Example:**
792
+
793
+ ```typescript
794
+ import { MastraEditor } from '@mastra/editor';
795
+ import { Mastra } from '@mastra/core';
796
+
797
+ // Initialize editor with Mastra
798
+ const mastra = new Mastra({
799
+ /* config */
800
+ editor: new MastraEditor(),
801
+ });
802
+
803
+ // Store an agent configuration
804
+ const agentId = await mastra.storage.stores?.agents?.createAgent({
805
+ name: 'customer-support',
806
+ instructions: 'Help customers with inquiries',
807
+ model: { provider: 'openai', name: 'gpt-4' },
808
+ tools: ['search-kb', 'create-ticket'],
809
+ workflows: ['escalation-flow'],
810
+ memory: { vector: 'pinecone-db' },
811
+ });
812
+
813
+ // Retrieve and use the stored agent
814
+ const agent = await mastra.getEditor()?.getStoredAgentById(agentId);
815
+ const response = await agent?.generate('How do I reset my password?');
816
+
817
+ // List all stored agents
818
+ const agents = await mastra.getEditor()?.listStoredAgents({ pageSize: 10 });
819
+ ```
820
+
821
+ **Storage Improvements:**
822
+ - Fixed JSONB handling in LibSQL, PostgreSQL, and MongoDB adapters
823
+ - Improved agent resolution queries to properly merge version data
824
+ - Enhanced type safety for serialized configurations
825
+
826
+ - Updated dependencies [[`2770921`](https://github.com/mastra-ai/mastra/commit/2770921eec4d55a36b278d15c3a83f694e462ee5), [`b1695db`](https://github.com/mastra-ai/mastra/commit/b1695db2d7be0c329d499619c7881899649188d0), [`4133d48`](https://github.com/mastra-ai/mastra/commit/4133d48eaa354cdb45920dc6265732ffbc96788d), [`5dd01cc`](https://github.com/mastra-ai/mastra/commit/5dd01cce68d61874aa3ecbd91ee17884cfd5aca2), [`13e0a2a`](https://github.com/mastra-ai/mastra/commit/13e0a2a2bcec01ff4d701274b3727d5e907a6a01), [`c987384`](https://github.com/mastra-ai/mastra/commit/c987384d6c8ca844a9701d7778f09f5a88da7f9f), [`cb8cc12`](https://github.com/mastra-ai/mastra/commit/cb8cc12bfadd526aa95a01125076f1da44e4afa7), [`62f5d50`](https://github.com/mastra-ai/mastra/commit/62f5d5043debbba497dacb7ab008fe86b38b8de3)]:
827
+ - @mastra/core@1.2.0-alpha.1
828
+
829
+ ## 1.1.0
830
+
831
+ ### Minor Changes
832
+
833
+ - Restructured stored agents to use a thin metadata record with versioned configuration snapshots. ([#12488](https://github.com/mastra-ai/mastra/pull/12488))
834
+
835
+ The agent record now only stores metadata fields (id, status, activeVersionId, authorId, metadata, timestamps). All configuration fields (name, instructions, model, tools, etc.) live exclusively in version snapshot rows, enabling full version history and rollback.
836
+
837
+ **Key changes:**
838
+ - Stored Agent records are now thin metadata-only (StorageAgentType)
839
+ - All config lives in version snapshots (StorageAgentSnapshotType)
840
+ - New resolved type (StorageResolvedAgentType) merges agent record + active version config
841
+ - Renamed `ownerId` to `authorId` for multi-tenant filtering
842
+ - Changed `memory` field type from `string` to `Record<string, unknown>`
843
+ - Added `status` field ('draft' | 'published') to agent records
844
+ - Flattened CreateAgent/UpdateAgent input types (config fields at top level, no nested snapshot)
845
+ - Version config columns are top-level in the agent_versions table (no single snapshot jsonb column)
846
+ - List endpoints return resolved agents (thin record + active version config)
847
+ - Auto-versioning on update with retention limits and race condition handling
848
+
849
+ - Added dynamic agent management with CRUD operations and version tracking ([#12038](https://github.com/mastra-ai/mastra/pull/12038))
850
+
851
+ **New Features:**
852
+ - Create, edit, and delete agents directly from the Mastra Studio UI
853
+ - Full version history for agents with compare and restore capabilities
854
+ - Visual diff viewer to compare agent configurations across versions
855
+ - Agent creation modal with comprehensive configuration options (model selection, instructions, tools, workflows, sub-agents, memory)
856
+ - AI-powered instruction enhancement
857
+
858
+ **Storage:**
859
+ - New storage interfaces for stored agents and agent versions
860
+ - PostgreSQL, LibSQL, and MongoDB implementations included
861
+ - In-memory storage for development and testing
862
+
863
+ **API:**
864
+ - RESTful endpoints for agent CRUD operations
865
+ - Version management endpoints (create, list, activate, restore, delete, compare)
866
+ - Automatic versioning on agent updates when enabled
867
+
868
+ **Client SDK:**
869
+ - JavaScript client with full support for stored agents and versions
870
+ - Type-safe methods for all CRUD and version operations
871
+
872
+ **Usage Example:**
873
+
874
+ ```typescript
875
+ // Server-side: Configure storage
876
+ import { Mastra } from '@mastra/core';
877
+ import { PgAgentsStorage } from '@mastra/pg';
878
+
879
+ const mastra = new Mastra({
880
+ agents: { agentOne },
881
+ storage: {
882
+ agents: new PgAgentsStorage({
883
+ connectionString: process.env.DATABASE_URL,
884
+ }),
885
+ },
886
+ });
887
+
888
+ // Client-side: Use the SDK
889
+ import { MastraClient } from '@mastra/client-js';
890
+
891
+ const client = new MastraClient({ baseUrl: 'http://localhost:3000' });
892
+
893
+ // Create a stored agent
894
+ const agent = await client.createStoredAgent({
895
+ name: 'Customer Support Agent',
896
+ description: 'Handles customer inquiries',
897
+ model: { provider: 'ANTHROPIC', name: 'claude-sonnet-4-5' },
898
+ instructions: 'You are a helpful customer support agent...',
899
+ tools: ['search', 'email'],
900
+ });
901
+
902
+ // Create a version snapshot
903
+ await client.storedAgent(agent.id).createVersion({
904
+ name: 'v1.0 - Initial release',
905
+ changeMessage: 'First production version',
906
+ });
907
+
908
+ // Compare versions
909
+ const diff = await client.storedAgent(agent.id).compareVersions('version-1', 'version-2');
910
+ ```
911
+
912
+ **Why:**
913
+ This feature enables teams to manage agents dynamically without code changes, making it easier to iterate on agent configurations and maintain a complete audit trail of changes.
914
+
915
+ - Added `status` field to `listTraces` response. The status field indicates the trace state: `success` (completed without error), `error` (has error), or `running` (still in progress). This makes it easier to filter and display traces by their current state without having to derive it from the `error` and `endedAt` fields. ([#12213](https://github.com/mastra-ai/mastra/pull/12213))
916
+
917
+ ### Patch Changes
918
+
919
+ - Stored agent edits no longer fail silently. PATCH requests now save changes correctly. ([#12504](https://github.com/mastra-ai/mastra/pull/12504))
920
+
921
+ - Fix PATCH request JSON-body handling in `@mastra/client-js` so stored agent edit flows work correctly. Fix stored agent schema migration in `@mastra/libsql` and `@mastra/pg` to drop and recreate the versions table when the old snapshot-based schema is detected, clean up stale draft records from partial create failures, and remove lingering legacy tables. Restores create and edit flows for stored agents. ([#12504](https://github.com/mastra-ai/mastra/pull/12504))
922
+
923
+ - Updated dependencies [[`90fc0e5`](https://github.com/mastra-ai/mastra/commit/90fc0e5717cb280c2d4acf4f0410b510bb4c0a72), [`1cf5d2e`](https://github.com/mastra-ai/mastra/commit/1cf5d2ea1b085be23e34fb506c80c80a4e6d9c2b), [`b99ceac`](https://github.com/mastra-ai/mastra/commit/b99ceace2c830dbdef47c8692d56a91954aefea2), [`deea43e`](https://github.com/mastra-ai/mastra/commit/deea43eb1366d03a864c5e597d16a48592b9893f), [`833ae96`](https://github.com/mastra-ai/mastra/commit/833ae96c3e34370e58a1e979571c41f39a720592), [`943772b`](https://github.com/mastra-ai/mastra/commit/943772b4378f625f0f4e19ea2b7c392bd8e71786), [`b5c711b`](https://github.com/mastra-ai/mastra/commit/b5c711b281dd1fb81a399a766bc9f86c55efc13e), [`3efbe5a`](https://github.com/mastra-ai/mastra/commit/3efbe5ae20864c4f3143457f4f3ee7dc2fa5ca76), [`1e49e7a`](https://github.com/mastra-ai/mastra/commit/1e49e7ab5f173582154cb26b29d424de67d09aef), [`751eaab`](https://github.com/mastra-ai/mastra/commit/751eaab4e0d3820a94e4c3d39a2ff2663ded3d91), [`69d8156`](https://github.com/mastra-ai/mastra/commit/69d81568bcf062557c24471ce26812446bec465d), [`60d9d89`](https://github.com/mastra-ai/mastra/commit/60d9d899e44b35bc43f1bcd967a74e0ce010b1af), [`5c544c8`](https://github.com/mastra-ai/mastra/commit/5c544c8d12b08ab40d64d8f37b3c4215bee95b87), [`771ad96`](https://github.com/mastra-ai/mastra/commit/771ad962441996b5c43549391a3e6a02c6ddedc2), [`2b0936b`](https://github.com/mastra-ai/mastra/commit/2b0936b0c9a43eeed9bef63e614d7e02ee803f7e), [`3b04f30`](https://github.com/mastra-ai/mastra/commit/3b04f3010604f3cdfc8a0674731700ad66471cee), [`97e26de`](https://github.com/mastra-ai/mastra/commit/97e26deaebd9836647a67b96423281d66421ca07), [`ac9ec66`](https://github.com/mastra-ai/mastra/commit/ac9ec6672779b2e6d4344e415481d1a6a7d4911a), [`10523f4`](https://github.com/mastra-ai/mastra/commit/10523f4882d9b874b40ce6e3715f66dbcd4947d2), [`cb72d20`](https://github.com/mastra-ai/mastra/commit/cb72d2069d7339bda8a0e76d4f35615debb07b84), [`42856b1`](https://github.com/mastra-ai/mastra/commit/42856b1c8aeea6371c9ee77ae2f5f5fe34400933), [`66f33ff`](https://github.com/mastra-ai/mastra/commit/66f33ff68620018513e499c394411d1d39b3aa5c), [`ab3c190`](https://github.com/mastra-ai/mastra/commit/ab3c1901980a99910ca9b96a7090c22e24060113), [`d4f06c8`](https://github.com/mastra-ai/mastra/commit/d4f06c85ffa5bb0da38fb82ebf3b040cc6b4ec4e), [`0350626`](https://github.com/mastra-ai/mastra/commit/03506267ec41b67add80d994c0c0fcce93bbc75f), [`bc9fa00`](https://github.com/mastra-ai/mastra/commit/bc9fa00859c5c4a796d53a0a5cae46ab4a3072e4), [`f46a478`](https://github.com/mastra-ai/mastra/commit/f46a4782f595949c696569e891f81c8d26338508), [`90fc0e5`](https://github.com/mastra-ai/mastra/commit/90fc0e5717cb280c2d4acf4f0410b510bb4c0a72), [`f05a3a5`](https://github.com/mastra-ai/mastra/commit/f05a3a5cf2b9a9c2d40c09cb8c762a4b6cd5d565), [`a291da9`](https://github.com/mastra-ai/mastra/commit/a291da9363efd92dafd8775dccb4f2d0511ece7a), [`c5d71da`](https://github.com/mastra-ai/mastra/commit/c5d71da1c680ce5640b1a7f8ca0e024a4ab1cfed), [`07042f9`](https://github.com/mastra-ai/mastra/commit/07042f9f89080f38b8f72713ba1c972d5b1905b8), [`0423442`](https://github.com/mastra-ai/mastra/commit/0423442b7be2dfacba95890bea8f4a810db4d603)]:
924
+ - @mastra/core@1.1.0
925
+
926
+ ## 1.1.0-alpha.2
927
+
928
+ ### Patch Changes
929
+
930
+ - Stored agent edits no longer fail silently. PATCH requests now save changes correctly. ([#12504](https://github.com/mastra-ai/mastra/pull/12504))
931
+
932
+ - Fix PATCH request JSON-body handling in `@mastra/client-js` so stored agent edit flows work correctly. Fix stored agent schema migration in `@mastra/libsql` and `@mastra/pg` to drop and recreate the versions table when the old snapshot-based schema is detected, clean up stale draft records from partial create failures, and remove lingering legacy tables. Restores create and edit flows for stored agents. ([#12504](https://github.com/mastra-ai/mastra/pull/12504))
933
+
934
+ - Updated dependencies:
935
+ - @mastra/core@1.1.0-alpha.2
936
+
937
+ ## 1.1.0-alpha.1
938
+
939
+ ### Minor Changes
940
+
941
+ - Restructured stored agents to use a thin metadata record with versioned configuration snapshots. ([#12488](https://github.com/mastra-ai/mastra/pull/12488))
942
+
943
+ The agent record now only stores metadata fields (id, status, activeVersionId, authorId, metadata, timestamps). All configuration fields (name, instructions, model, tools, etc.) live exclusively in version snapshot rows, enabling full version history and rollback.
944
+
945
+ **Key changes:**
946
+ - Stored Agent records are now thin metadata-only (StorageAgentType)
947
+ - All config lives in version snapshots (StorageAgentSnapshotType)
948
+ - New resolved type (StorageResolvedAgentType) merges agent record + active version config
949
+ - Renamed `ownerId` to `authorId` for multi-tenant filtering
950
+ - Changed `memory` field type from `string` to `Record<string, unknown>`
951
+ - Added `status` field ('draft' | 'published') to agent records
952
+ - Flattened CreateAgent/UpdateAgent input types (config fields at top level, no nested snapshot)
953
+ - Version config columns are top-level in the agent_versions table (no single snapshot jsonb column)
954
+ - List endpoints return resolved agents (thin record + active version config)
955
+ - Auto-versioning on update with retention limits and race condition handling
956
+
957
+ ### Patch Changes
958
+
959
+ - Updated dependencies [[`b99ceac`](https://github.com/mastra-ai/mastra/commit/b99ceace2c830dbdef47c8692d56a91954aefea2), [`deea43e`](https://github.com/mastra-ai/mastra/commit/deea43eb1366d03a864c5e597d16a48592b9893f), [`ac9ec66`](https://github.com/mastra-ai/mastra/commit/ac9ec6672779b2e6d4344e415481d1a6a7d4911a)]:
960
+ - @mastra/core@1.1.0-alpha.1
961
+
962
+ ## 1.1.0-alpha.0
963
+
964
+ ### Minor Changes
965
+
966
+ - Added dynamic agent management with CRUD operations and version tracking ([#12038](https://github.com/mastra-ai/mastra/pull/12038))
967
+
968
+ **New Features:**
969
+ - Create, edit, and delete agents directly from the Mastra Studio UI
970
+ - Full version history for agents with compare and restore capabilities
971
+ - Visual diff viewer to compare agent configurations across versions
972
+ - Agent creation modal with comprehensive configuration options (model selection, instructions, tools, workflows, sub-agents, memory)
973
+ - AI-powered instruction enhancement
974
+
975
+ **Storage:**
976
+ - New storage interfaces for stored agents and agent versions
977
+ - PostgreSQL, LibSQL, and MongoDB implementations included
978
+ - In-memory storage for development and testing
979
+
980
+ **API:**
981
+ - RESTful endpoints for agent CRUD operations
982
+ - Version management endpoints (create, list, activate, restore, delete, compare)
983
+ - Automatic versioning on agent updates when enabled
984
+
985
+ **Client SDK:**
986
+ - JavaScript client with full support for stored agents and versions
987
+ - Type-safe methods for all CRUD and version operations
988
+
989
+ **Usage Example:**
990
+
991
+ ```typescript
992
+ // Server-side: Configure storage
993
+ import { Mastra } from '@mastra/core';
994
+ import { PgAgentsStorage } from '@mastra/pg';
995
+
996
+ const mastra = new Mastra({
997
+ agents: { agentOne },
998
+ storage: {
999
+ agents: new PgAgentsStorage({
1000
+ connectionString: process.env.DATABASE_URL,
1001
+ }),
1002
+ },
1003
+ });
1004
+
1005
+ // Client-side: Use the SDK
1006
+ import { MastraClient } from '@mastra/client-js';
1007
+
1008
+ const client = new MastraClient({ baseUrl: 'http://localhost:3000' });
1009
+
1010
+ // Create a stored agent
1011
+ const agent = await client.createStoredAgent({
1012
+ name: 'Customer Support Agent',
1013
+ description: 'Handles customer inquiries',
1014
+ model: { provider: 'ANTHROPIC', name: 'claude-sonnet-4-5' },
1015
+ instructions: 'You are a helpful customer support agent...',
1016
+ tools: ['search', 'email'],
1017
+ });
1018
+
1019
+ // Create a version snapshot
1020
+ await client.storedAgent(agent.id).createVersion({
1021
+ name: 'v1.0 - Initial release',
1022
+ changeMessage: 'First production version',
1023
+ });
1024
+
1025
+ // Compare versions
1026
+ const diff = await client.storedAgent(agent.id).compareVersions('version-1', 'version-2');
1027
+ ```
1028
+
1029
+ **Why:**
1030
+ This feature enables teams to manage agents dynamically without code changes, making it easier to iterate on agent configurations and maintain a complete audit trail of changes.
1031
+
1032
+ - Added `status` field to `listTraces` response. The status field indicates the trace state: `success` (completed without error), `error` (has error), or `running` (still in progress). This makes it easier to filter and display traces by their current state without having to derive it from the `error` and `endedAt` fields. ([#12213](https://github.com/mastra-ai/mastra/pull/12213))
1033
+
1034
+ ### Patch Changes
1035
+
1036
+ - Updated dependencies [[`90fc0e5`](https://github.com/mastra-ai/mastra/commit/90fc0e5717cb280c2d4acf4f0410b510bb4c0a72), [`1cf5d2e`](https://github.com/mastra-ai/mastra/commit/1cf5d2ea1b085be23e34fb506c80c80a4e6d9c2b), [`833ae96`](https://github.com/mastra-ai/mastra/commit/833ae96c3e34370e58a1e979571c41f39a720592), [`943772b`](https://github.com/mastra-ai/mastra/commit/943772b4378f625f0f4e19ea2b7c392bd8e71786), [`b5c711b`](https://github.com/mastra-ai/mastra/commit/b5c711b281dd1fb81a399a766bc9f86c55efc13e), [`3efbe5a`](https://github.com/mastra-ai/mastra/commit/3efbe5ae20864c4f3143457f4f3ee7dc2fa5ca76), [`1e49e7a`](https://github.com/mastra-ai/mastra/commit/1e49e7ab5f173582154cb26b29d424de67d09aef), [`751eaab`](https://github.com/mastra-ai/mastra/commit/751eaab4e0d3820a94e4c3d39a2ff2663ded3d91), [`69d8156`](https://github.com/mastra-ai/mastra/commit/69d81568bcf062557c24471ce26812446bec465d), [`60d9d89`](https://github.com/mastra-ai/mastra/commit/60d9d899e44b35bc43f1bcd967a74e0ce010b1af), [`5c544c8`](https://github.com/mastra-ai/mastra/commit/5c544c8d12b08ab40d64d8f37b3c4215bee95b87), [`771ad96`](https://github.com/mastra-ai/mastra/commit/771ad962441996b5c43549391a3e6a02c6ddedc2), [`2b0936b`](https://github.com/mastra-ai/mastra/commit/2b0936b0c9a43eeed9bef63e614d7e02ee803f7e), [`3b04f30`](https://github.com/mastra-ai/mastra/commit/3b04f3010604f3cdfc8a0674731700ad66471cee), [`97e26de`](https://github.com/mastra-ai/mastra/commit/97e26deaebd9836647a67b96423281d66421ca07), [`10523f4`](https://github.com/mastra-ai/mastra/commit/10523f4882d9b874b40ce6e3715f66dbcd4947d2), [`cb72d20`](https://github.com/mastra-ai/mastra/commit/cb72d2069d7339bda8a0e76d4f35615debb07b84), [`42856b1`](https://github.com/mastra-ai/mastra/commit/42856b1c8aeea6371c9ee77ae2f5f5fe34400933), [`66f33ff`](https://github.com/mastra-ai/mastra/commit/66f33ff68620018513e499c394411d1d39b3aa5c), [`ab3c190`](https://github.com/mastra-ai/mastra/commit/ab3c1901980a99910ca9b96a7090c22e24060113), [`d4f06c8`](https://github.com/mastra-ai/mastra/commit/d4f06c85ffa5bb0da38fb82ebf3b040cc6b4ec4e), [`0350626`](https://github.com/mastra-ai/mastra/commit/03506267ec41b67add80d994c0c0fcce93bbc75f), [`bc9fa00`](https://github.com/mastra-ai/mastra/commit/bc9fa00859c5c4a796d53a0a5cae46ab4a3072e4), [`f46a478`](https://github.com/mastra-ai/mastra/commit/f46a4782f595949c696569e891f81c8d26338508), [`90fc0e5`](https://github.com/mastra-ai/mastra/commit/90fc0e5717cb280c2d4acf4f0410b510bb4c0a72), [`f05a3a5`](https://github.com/mastra-ai/mastra/commit/f05a3a5cf2b9a9c2d40c09cb8c762a4b6cd5d565), [`a291da9`](https://github.com/mastra-ai/mastra/commit/a291da9363efd92dafd8775dccb4f2d0511ece7a), [`c5d71da`](https://github.com/mastra-ai/mastra/commit/c5d71da1c680ce5640b1a7f8ca0e024a4ab1cfed), [`07042f9`](https://github.com/mastra-ai/mastra/commit/07042f9f89080f38b8f72713ba1c972d5b1905b8), [`0423442`](https://github.com/mastra-ai/mastra/commit/0423442b7be2dfacba95890bea8f4a810db4d603)]:
1037
+ - @mastra/core@1.1.0-alpha.0
1038
+
1039
+ ## 1.0.0
1040
+
1041
+ ### Major Changes
1042
+
1043
+ - Moving scorers under the eval domain, api method consistency, prebuilt evals, scorers require ids. ([#9589](https://github.com/mastra-ai/mastra/pull/9589))
1044
+
1045
+ - 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))
1046
+
1047
+ Primitives that are added to other primitives are also automatically added to the Mastra instance
1048
+
1049
+ - 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))
1050
+
1051
+ - Remove `getMessagesPaginated()` and add `perPage: false` support ([#9670](https://github.com/mastra-ai/mastra/pull/9670))
1052
+
1053
+ Removes deprecated `getMessagesPaginated()` method. The `listMessages()` API and score handlers now support `perPage: false` to fetch all records without pagination limits.
1054
+
1055
+ **Storage changes:**
1056
+ - `StoragePagination.perPage` type changed from `number` to `number | false`
1057
+ - All storage implementations support `perPage: false`:
1058
+ - Memory: `listMessages()`
1059
+ - Scores: `listScoresBySpan()`, `listScoresByRunId()`, `listScoresByExecutionId()`
1060
+ - HTTP query parser accepts `"false"` string (e.g., `?perPage=false`)
1061
+
1062
+ **Memory changes:**
1063
+ - `memory.query()` parameter type changed from `StorageGetMessagesArg` to `StorageListMessagesInput`
1064
+ - Uses flat parameters (`page`, `perPage`, `include`, `filter`, `vectorSearchString`) instead of `selectBy` object
1065
+
1066
+ **Stricter validation:**
1067
+ - `listMessages()` requires non-empty, non-whitespace `threadId` (throws error instead of returning empty results)
1068
+
1069
+ **Migration:**
1070
+
1071
+ ```typescript
1072
+ // Storage/Memory: Replace getMessagesPaginated with listMessages
1073
+ - storage.getMessagesPaginated({ threadId, selectBy: { pagination: { page: 0, perPage: 20 } } })
1074
+ + storage.listMessages({ threadId, page: 0, perPage: 20 })
1075
+ + storage.listMessages({ threadId, page: 0, perPage: false }) // Fetch all
1076
+
1077
+ // Memory: Replace selectBy with flat parameters
1078
+ - memory.query({ threadId, selectBy: { last: 20, include: [...] } })
1079
+ + memory.query({ threadId, perPage: 20, include: [...] })
1080
+
1081
+ // Client SDK
1082
+ - thread.getMessagesPaginated({ selectBy: { pagination: { page: 0 } } })
1083
+ + thread.listMessages({ page: 0, perPage: 20 })
1084
+ ```
1085
+
1086
+ - **Removed `storage.getMessages()`** ([#9695](https://github.com/mastra-ai/mastra/pull/9695))
1087
+
1088
+ The `getMessages()` method has been removed from all storage implementations. Use `listMessages()` instead, which provides pagination support.
1089
+
1090
+ **Migration:**
1091
+
1092
+ ```typescript
1093
+ // Before
1094
+ const messages = await storage.getMessages({ threadId: 'thread-1' });
1095
+
1096
+ // After
1097
+ const result = await storage.listMessages({
1098
+ threadId: 'thread-1',
1099
+ page: 0,
1100
+ perPage: 50,
1101
+ });
1102
+ const messages = result.messages; // Access messages array
1103
+ console.log(result.total); // Total count
1104
+ console.log(result.hasMore); // Whether more pages exist
1105
+ ```
1106
+
1107
+ **Message ordering default**
1108
+
1109
+ `listMessages()` defaults to ASC (oldest first) ordering by `createdAt`, matching the previous `getMessages()` behavior.
1110
+
1111
+ **To use DESC ordering (newest first):**
1112
+
1113
+ ```typescript
1114
+ const result = await storage.listMessages({
1115
+ threadId: 'thread-1',
1116
+ orderBy: { field: 'createdAt', direction: 'DESC' },
1117
+ });
1118
+ ```
1119
+
1120
+ **Renamed `client.getThreadMessages()` → `client.listThreadMessages()`**
1121
+
1122
+ **Migration:**
1123
+
1124
+ ```typescript
1125
+ // Before
1126
+ const response = await client.getThreadMessages(threadId, { agentId });
1127
+
1128
+ // After
1129
+ const response = await client.listThreadMessages(threadId, { agentId });
1130
+ ```
1131
+
1132
+ The response format remains the same.
1133
+
1134
+ **Removed `StorageGetMessagesArg` type**
1135
+
1136
+ Use `StorageListMessagesInput` instead:
1137
+
1138
+ ```typescript
1139
+ // Before
1140
+ import type { StorageGetMessagesArg } from '@mastra/core';
1141
+
1142
+ // After
1143
+ import type { StorageListMessagesInput } from '@mastra/core';
1144
+ ```
1145
+
1146
+ - Bump minimum required Node.js version to 22.13.0 ([#9706](https://github.com/mastra-ai/mastra/pull/9706))
1147
+
1148
+ - Add new list methods to storage API: `listMessages`, `listMessagesById`, `listThreadsByResourceId`, and `listWorkflowRuns`. Most methods are currently wrappers around existing methods. Full implementations will be added when migrating away from legacy methods. ([#9489](https://github.com/mastra-ai/mastra/pull/9489))
1149
+
1150
+ - Rename RuntimeContext to RequestContext ([#9511](https://github.com/mastra-ai/mastra/pull/9511))
1151
+
1152
+ - Implement listMessages API for replacing previous methods ([#9531](https://github.com/mastra-ai/mastra/pull/9531))
1153
+
1154
+ - 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))
1155
+
1156
+ - Remove `getMessagesById` method from storage interfaces in favor of `listMessagesById`. The new method only returns V2-format messages and removes the format parameter, simplifying the API surface. Users should migrate from `getMessagesById({ messageIds, format })` to `listMessagesById({ messageIds })`. ([#9534](https://github.com/mastra-ai/mastra/pull/9534))
1157
+
1158
+ - Renamed a bunch of observability/tracing-related things to drop the AI prefix. ([#9744](https://github.com/mastra-ai/mastra/pull/9744))
1159
+
1160
+ - Pagination APIs now use `page`/`perPage` instead of `offset`/`limit` ([#9592](https://github.com/mastra-ai/mastra/pull/9592))
1161
+
1162
+ 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.
1163
+
1164
+ **Affected APIs:**
1165
+ - `Memory.listThreadsByResourceId()`
1166
+ - `Memory.listMessages()`
1167
+ - `Storage.listWorkflowRuns()`
1168
+
1169
+ **Migration:**
1170
+
1171
+ ```typescript
1172
+ // Before
1173
+ await memory.listThreadsByResourceId({
1174
+ resourceId: 'user-123',
1175
+ offset: 20,
1176
+ limit: 10,
1177
+ });
1178
+
1179
+ // After
1180
+ await memory.listThreadsByResourceId({
1181
+ resourceId: 'user-123',
1182
+ page: 2, // page = Math.floor(offset / limit)
1183
+ perPage: 10,
1184
+ });
1185
+
1186
+ // Before
1187
+ await memory.listMessages({
1188
+ threadId: 'thread-456',
1189
+ offset: 20,
1190
+ limit: 10,
1191
+ });
1192
+
1193
+ // After
1194
+ await memory.listMessages({
1195
+ threadId: 'thread-456',
1196
+ page: 2,
1197
+ perPage: 10,
1198
+ });
1199
+
1200
+ // Before
1201
+ await storage.listWorkflowRuns({
1202
+ workflowName: 'my-workflow',
1203
+ offset: 20,
1204
+ limit: 10,
1205
+ });
1206
+
1207
+ // After
1208
+ await storage.listWorkflowRuns({
1209
+ workflowName: 'my-workflow',
1210
+ page: 2,
1211
+ perPage: 10,
1212
+ });
1213
+ ```
1214
+
1215
+ **Additional improvements:**
1216
+ - Added validation for negative `page` values in all storage implementations
1217
+ - Improved `perPage` validation to handle edge cases (negative values, `0`, `false`)
1218
+ - Added reusable query parser utilities for consistent validation in handlers
1219
+
1220
+ - ```ts ([#9709](https://github.com/mastra-ai/mastra/pull/9709))
1221
+ import { Mastra } from '@mastra/core';
1222
+ import { Observability } from '@mastra/observability'; // Explicit import
1223
+
1224
+ const mastra = new Mastra({
1225
+ ...other_config,
1226
+ observability: new Observability({
1227
+ default: { enabled: true },
1228
+ }), // Instance
1229
+ });
1230
+ ```
1231
+
1232
+ Instead of:
1233
+
1234
+ ```ts
1235
+ import { Mastra } from '@mastra/core';
1236
+ import '@mastra/observability/init'; // Explicit import
1237
+
1238
+ const mastra = new Mastra({
1239
+ ...other_config,
1240
+ observability: {
1241
+ default: { enabled: true },
1242
+ },
1243
+ });
1244
+ ```
1245
+
1246
+ Also renamed a bunch of:
1247
+ - `Tracing` things to `Observability` things.
1248
+ - `AI-` things to just things.
1249
+
1250
+ - Removed old tracing code based on OpenTelemetry ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
1251
+
1252
+ - Mark as stable ([`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc))
1253
+
1254
+ - Renamed `MastraMessageV2` to `MastraDBMessage` ([#9255](https://github.com/mastra-ai/mastra/pull/9255))
1255
+ 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
1256
+
1257
+ - Remove legacy evals from Mastra ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
1258
+
1259
+ ### Minor Changes
1260
+
1261
+ - Add stored agents support ([#10953](https://github.com/mastra-ai/mastra/pull/10953))
1262
+
1263
+ Agents can now be stored in the database and loaded at runtime. This lets you persist agent configurations and dynamically create executable Agent instances from storage.
1264
+
1265
+ ```typescript
1266
+ import { Mastra } from '@mastra/core';
1267
+ import { LibSQLStore } from '@mastra/libsql';
1268
+
1269
+ const mastra = new Mastra({
1270
+ storage: new LibSQLStore({ url: ':memory:' }),
1271
+ tools: { myTool },
1272
+ scorers: { myScorer },
1273
+ });
1274
+
1275
+ // Create agent in storage via API or directly
1276
+ await mastra.getStorage().createAgent({
1277
+ agent: {
1278
+ id: 'my-agent',
1279
+ name: 'My Agent',
1280
+ instructions: 'You are helpful',
1281
+ model: { provider: 'openai', name: 'gpt-4' },
1282
+ tools: { myTool: {} },
1283
+ scorers: { myScorer: { sampling: { type: 'ratio', rate: 0.5 } } },
1284
+ },
1285
+ });
1286
+
1287
+ // Load and use the agent
1288
+ const agent = await mastra.getStoredAgentById('my-agent');
1289
+ const response = await agent.generate('Hello!');
1290
+
1291
+ // List all stored agents with pagination
1292
+ const { agents, total, hasMore } = await mastra.listStoredAgents({
1293
+ page: 0,
1294
+ perPage: 10,
1295
+ });
1296
+ ```
1297
+
1298
+ Also adds a memory registry to Mastra so stored agents can reference memory instances by key.
1299
+
1300
+ - Update peer dependencies to match core package version bump (1.0.0) ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
1301
+
1302
+ - Changed JSON columns from TEXT to JSONB in `mastra_threads` and `mastra_workflow_snapshot` tables. ([#11853](https://github.com/mastra-ai/mastra/pull/11853))
1303
+
1304
+ **Why this change?**
1305
+
1306
+ These were the last remaining columns storing JSON as TEXT. This change aligns them with other tables that already use JSONB, enabling native JSON operators and improved performance. See [#8978](https://github.com/mastra-ai/mastra/issues/8978) for details.
1307
+
1308
+ **Columns Changed:**
1309
+ - `mastra_threads.metadata` - Thread metadata
1310
+ - `mastra_workflow_snapshot.snapshot` - Workflow run state
1311
+
1312
+ **PostgreSQL**
1313
+
1314
+ Migration Required - PostgreSQL enforces column types, so existing tables must be migrated. Note: Migration will fail if existing column values contain invalid JSON.
1315
+
1316
+ ```sql
1317
+ ALTER TABLE mastra_threads
1318
+ ALTER COLUMN metadata TYPE jsonb
1319
+ USING metadata::jsonb;
1320
+
1321
+ ALTER TABLE mastra_workflow_snapshot
1322
+ ALTER COLUMN snapshot TYPE jsonb
1323
+ USING snapshot::jsonb;
1324
+ ```
1325
+
1326
+ **LibSQL**
1327
+
1328
+ No Migration Required - LibSQL now uses native SQLite JSONB format (added in SQLite 3.45) for ~3x performance improvement on JSON operations. The changes are fully backwards compatible:
1329
+ - Existing TEXT JSON data continues to work
1330
+ - New data is stored in binary JSONB format
1331
+ - Both formats can coexist in the same table
1332
+ - All JSON functions (`json_extract`, etc.) work on both formats
1333
+
1334
+ New installations automatically use JSONB. Existing applications continue to work without any changes.
1335
+
1336
+ - Introduce StorageDomain base class for composite storage support ([#11249](https://github.com/mastra-ai/mastra/pull/11249))
1337
+
1338
+ Storage adapters now use a domain-based architecture where each domain (memory, workflows, scores, observability, agents) extends a `StorageDomain` base class with `init()` and `dangerouslyClearAll()` methods.
1339
+
1340
+ **Key changes:**
1341
+ - Add `StorageDomain` abstract base class that all domain storage classes extend
1342
+ - Add `InMemoryDB` class for shared state across in-memory domain implementations
1343
+ - All storage domains now implement `dangerouslyClearAll()` for test cleanup
1344
+ - Remove `operations` from public `StorageDomains` type (now internal to each adapter)
1345
+ - Add flexible client/config patterns - domains accept either an existing database client or config to create one internally
1346
+
1347
+ **Why this matters:**
1348
+
1349
+ This enables composite storage where you can use different database adapters per domain:
1350
+
1351
+ ```typescript
1352
+ import { Mastra } from '@mastra/core';
1353
+ import { PostgresStore } from '@mastra/pg';
1354
+ import { ClickhouseStore } from '@mastra/clickhouse';
1355
+
1356
+ // Use Postgres for most domains but Clickhouse for observability
1357
+ const mastra = new Mastra({
1358
+ storage: new PostgresStore({
1359
+ connectionString: 'postgres://...',
1360
+ }),
1361
+ // Future: override specific domains
1362
+ // observability: new ClickhouseStore({ ... }).getStore('observability'),
1363
+ });
1364
+ ```
1365
+
1366
+ **Standalone domain usage:**
1367
+
1368
+ Domains can now be used independently with flexible configuration:
1369
+
1370
+ ```typescript
1371
+ import { MemoryLibSQL } from '@mastra/libsql/memory';
1372
+
1373
+ // Option 1: Pass config to create client internally
1374
+ const memory = new MemoryLibSQL({
1375
+ url: 'file:./local.db',
1376
+ });
1377
+
1378
+ // Option 2: Pass existing client for shared connections
1379
+ import { createClient } from '@libsql/client';
1380
+ const client = createClient({ url: 'file:./local.db' });
1381
+ const memory = new MemoryLibSQL({ client });
1382
+ ```
1383
+
1384
+ **Breaking changes:**
1385
+ - `StorageDomains` type no longer includes `operations` - access via `getStore()` instead
1386
+ - Domain base classes now require implementing `dangerouslyClearAll()` method
1387
+
1388
+ - Refactor storage architecture to use domain-specific stores via `getStore()` pattern ([#11361](https://github.com/mastra-ai/mastra/pull/11361))
1389
+
1390
+ ### Summary
1391
+
1392
+ This release introduces a new storage architecture that replaces passthrough methods on `MastraStorage` with domain-specific storage interfaces accessed via `getStore()`. This change reduces code duplication across storage adapters and provides a cleaner, more modular API.
1393
+
1394
+ ### Migration Guide
1395
+
1396
+ All direct method calls on storage instances should be updated to use `getStore()`:
1397
+
1398
+ ```typescript
1399
+ // Before
1400
+ const thread = await storage.getThreadById({ threadId });
1401
+ await storage.persistWorkflowSnapshot({ workflowName, runId, snapshot });
1402
+ await storage.createSpan(span);
1403
+
1404
+ // After
1405
+ const memory = await storage.getStore('memory');
1406
+ const thread = await memory?.getThreadById({ threadId });
1407
+
1408
+ const workflows = await storage.getStore('workflows');
1409
+ await workflows?.persistWorkflowSnapshot({ workflowName, runId, snapshot });
1410
+
1411
+ const observability = await storage.getStore('observability');
1412
+ await observability?.createSpan(span);
1413
+ ```
1414
+
1415
+ ### Available Domains
1416
+ - **`memory`**: Thread and message operations (`getThreadById`, `saveThread`, `saveMessages`, etc.)
1417
+ - **`workflows`**: Workflow state persistence (`persistWorkflowSnapshot`, `loadWorkflowSnapshot`, `getWorkflowRunById`, etc.)
1418
+ - **`scores`**: Evaluation scores (`saveScore`, `listScoresByScorerId`, etc.)
1419
+ - **`observability`**: Tracing and spans (`createSpan`, `updateSpan`, `getTrace`, etc.)
1420
+ - **`agents`**: Stored agent configurations (`createAgent`, `getAgentById`, `listAgents`, etc.)
1421
+
1422
+ ### Breaking Changes
1423
+ - Passthrough methods have been removed from `MastraStorage` base class
1424
+ - All storage adapters now require accessing domains via `getStore()`
1425
+ - The `stores` property on storage instances is now the canonical way to access domain storage
1426
+
1427
+ ### Internal Changes
1428
+ - Each storage adapter now initializes domain-specific stores in its constructor
1429
+ - Domain stores share database connections and handle their own table initialization
1430
+
1431
+ - Unified observability schema with entity-based span identification ([#11132](https://github.com/mastra-ai/mastra/pull/11132))
1432
+
1433
+ ## What changed
1434
+
1435
+ Spans now use a unified identification model with `entityId`, `entityType`, and `entityName` instead of separate `agentId`, `toolId`, `workflowId` fields.
1436
+
1437
+ **Before:**
1438
+
1439
+ ```typescript
1440
+ // Old span structure
1441
+ span.agentId; // 'my-agent'
1442
+ span.toolId; // undefined
1443
+ span.workflowId; // undefined
1444
+ ```
1445
+
1446
+ **After:**
1447
+
1448
+ ```typescript
1449
+ // New span structure
1450
+ span.entityType; // EntityType.AGENT
1451
+ span.entityId; // 'my-agent'
1452
+ span.entityName; // 'My Agent'
1453
+ ```
1454
+
1455
+ ## New `listTraces()` API
1456
+
1457
+ Query traces with filtering, pagination, and sorting:
1458
+
1459
+ ```typescript
1460
+ const { spans, pagination } = await storage.listTraces({
1461
+ filters: {
1462
+ entityType: EntityType.AGENT,
1463
+ entityId: 'my-agent',
1464
+ userId: 'user-123',
1465
+ environment: 'production',
1466
+ status: TraceStatus.SUCCESS,
1467
+ startedAt: { start: new Date('2024-01-01'), end: new Date('2024-01-31') },
1468
+ },
1469
+ pagination: { page: 0, perPage: 50 },
1470
+ orderBy: { field: 'startedAt', direction: 'DESC' },
1471
+ });
1472
+ ```
1473
+
1474
+ **Available filters:** date ranges (`startedAt`, `endedAt`), entity (`entityType`, `entityId`, `entityName`), identity (`userId`, `organizationId`), correlation IDs (`runId`, `sessionId`, `threadId`), deployment (`environment`, `source`, `serviceName`), `tags`, `metadata`, and `status`.
1475
+
1476
+ ## New retrieval methods
1477
+ - `getSpan({ traceId, spanId })` - Get a single span
1478
+ - `getRootSpan({ traceId })` - Get the root span of a trace
1479
+ - `getTrace({ traceId })` - Get all spans for a trace
1480
+
1481
+ ## Backward compatibility
1482
+
1483
+ The legacy `getTraces()` method continues to work. When you pass `name: "agent run: my-agent"`, it automatically transforms to `entityId: "my-agent", entityType: AGENT`.
1484
+
1485
+ ## Migration
1486
+
1487
+ **Automatic:** SQL-based stores (PostgreSQL, LibSQL, MSSQL) automatically add new columns to existing `spans` tables on initialization. Existing data is preserved with new columns set to `NULL`.
1488
+
1489
+ **No action required:** Your existing code continues to work. Adopt the new fields and `listTraces()` API at your convenience.
1490
+
1491
+ - Aligned vector store configuration with underlying library APIs, giving you access to all library options directly. ([#11742](https://github.com/mastra-ai/mastra/pull/11742))
1492
+
1493
+ **Why this change?**
1494
+
1495
+ Previously, each vector store defined its own configuration types that only exposed a subset of the underlying library's options. This meant users couldn't access advanced features like authentication, SSL, compression, or custom headers without creating their own client instances. Now, the configuration types extend the library types directly, so all options are available.
1496
+
1497
+ **@mastra/libsql** (Breaking)
1498
+
1499
+ Renamed `connectionUrl` to `url` to match the `@libsql/client` API and align with LibSQLStorage.
1500
+
1501
+ ```typescript
1502
+ // Before
1503
+ new LibSQLVector({ id: 'my-vector', connectionUrl: 'file:./db.sqlite' });
1504
+
1505
+ // After
1506
+ new LibSQLVector({ id: 'my-vector', url: 'file:./db.sqlite' });
1507
+ ```
1508
+
1509
+ **@mastra/opensearch** (Breaking)
1510
+
1511
+ Renamed `url` to `node` and added support for all OpenSearch `ClientOptions` including authentication, SSL, and compression.
1512
+
1513
+ ```typescript
1514
+ // Before
1515
+ new OpenSearchVector({ id: 'my-vector', url: 'http://localhost:9200' });
1516
+
1517
+ // After
1518
+ new OpenSearchVector({ id: 'my-vector', node: 'http://localhost:9200' });
1519
+
1520
+ // With authentication (now possible)
1521
+ new OpenSearchVector({
1522
+ id: 'my-vector',
1523
+ node: 'https://localhost:9200',
1524
+ auth: { username: 'admin', password: 'admin' },
1525
+ ssl: { rejectUnauthorized: false },
1526
+ });
1527
+ ```
1528
+
1529
+ **@mastra/pinecone** (Breaking)
1530
+
1531
+ Removed `environment` parameter. Use `controllerHostUrl` instead (the actual Pinecone SDK field name). Added support for all `PineconeConfiguration` options.
1532
+
1533
+ ```typescript
1534
+ // Before
1535
+ new PineconeVector({ id: 'my-vector', apiKey: '...', environment: '...' });
1536
+
1537
+ // After
1538
+ new PineconeVector({ id: 'my-vector', apiKey: '...' });
1539
+
1540
+ // With custom controller host (if needed)
1541
+ new PineconeVector({ id: 'my-vector', apiKey: '...', controllerHostUrl: '...' });
1542
+ ```
1543
+
1544
+ **@mastra/clickhouse**
1545
+
1546
+ Added support for all `ClickHouseClientConfigOptions` like `request_timeout`, `compression`, `keep_alive`, and `database`. Existing configurations continue to work unchanged.
1547
+
1548
+ **@mastra/cloudflare, @mastra/cloudflare-d1, @mastra/lance, @mastra/libsql, @mastra/mongodb, @mastra/pg, @mastra/upstash**
1549
+
1550
+ Improved logging by replacing `console.warn` with structured logger in workflow storage domains.
1551
+
1552
+ **@mastra/deployer-cloud**
1553
+
1554
+ Updated internal LibSQLVector configuration for compatibility with the new API.
1555
+
1556
+ - Add `disableInit` option to all storage adapters ([#10851](https://github.com/mastra-ai/mastra/pull/10851))
1557
+
1558
+ Adds a new `disableInit` config option to all storage providers that allows users to disable automatic table creation/migrations at runtime. This is useful for CI/CD pipelines where you want to run migrations during deployment with elevated credentials, then run the application with `disableInit: true` so it doesn't attempt schema changes at runtime.
1559
+
1560
+ ```typescript
1561
+ // CI/CD script - run migrations
1562
+ const storage = new PostgresStore({
1563
+ connectionString: DATABASE_URL,
1564
+ id: 'pg-storage',
1565
+ });
1566
+ await storage.init();
1567
+
1568
+ // Runtime - skip auto-init
1569
+ const storage = new PostgresStore({
1570
+ connectionString: DATABASE_URL,
1571
+ id: 'pg-storage',
1572
+ disableInit: true,
1573
+ });
1574
+ ```
1575
+
1576
+ ### Patch Changes
1577
+
1578
+ - Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))
1579
+
1580
+ Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.
1581
+
1582
+ Each package includes:
1583
+ - **SKILL.md** - Entry point explaining the package's purpose and capabilities
1584
+ - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files
1585
+ - **Topic folders** - Conceptual documentation organized by feature area
1586
+
1587
+ Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.
1588
+
1589
+ - Standardize error IDs across all storage and vector stores using centralized helper functions (`createStorageErrorId` and `createVectorErrorId`). This ensures consistent error ID patterns (`MASTRA_STORAGE_{STORE}_{OPERATION}_{STATUS}` and `MASTRA_VECTOR_{STORE}_{OPERATION}_{STATUS}`) across the codebase for better error tracking and debugging. ([#10913](https://github.com/mastra-ai/mastra/pull/10913))
1590
+
1591
+ - Fix saveScore not persisting ID correctly, breaking getScoreById retrieval ([#10915](https://github.com/mastra-ai/mastra/pull/10915))
1592
+
1593
+ **What Changed**
1594
+ - saveScore now correctly returns scores that can be retrieved with getScoreById
1595
+ - Validation errors now include contextual information (scorer, entity, trace details) for easier debugging
1596
+
1597
+ **Impact**
1598
+ Previously, calling getScoreById after saveScore would return null because the generated ID wasn't persisted to the database. This is now fixed across all store implementations, ensuring consistent behavior and data integrity.
1599
+
1600
+ - Add new deleteVectors, updateVector by filter ([#10408](https://github.com/mastra-ai/mastra/pull/10408))
1601
+
1602
+ - - Fixed TypeScript errors where `threadId: string | string[]` was being passed to places expecting `Scalar` type ([#10663](https://github.com/mastra-ai/mastra/pull/10663))
1603
+ - Added proper multi-thread support for `listMessages` across all adapters when `threadId` is an array
1604
+ - Updated `_getIncludedMessages` to look up message threadId by ID (since message IDs are globally unique)
1605
+ - **upstash**: Added `msg-idx:{messageId}` index for O(1) message lookups (backwards compatible with fallback to scan for old messages, with automatic backfill)
1606
+
1607
+ - Preserve error details when thrown from workflow steps ([#10992](https://github.com/mastra-ai/mastra/pull/10992))
1608
+
1609
+ Workflow errors now retain custom properties like `statusCode`, `responseHeaders`, and `cause` chains. This enables error-specific recovery logic in your applications.
1610
+
1611
+ **Before:**
1612
+
1613
+ ```typescript
1614
+ const result = await workflow.execute({ input });
1615
+ if (result.status === 'failed') {
1616
+ // Custom error properties were lost
1617
+ console.log(result.error); // "Step execution failed" (just a string)
1618
+ }
1619
+ ```
1620
+
1621
+ **After:**
1622
+
1623
+ ```typescript
1624
+ const result = await workflow.execute({ input });
1625
+ if (result.status === 'failed') {
1626
+ // Custom properties are preserved
1627
+ console.log(result.error.message); // "Step execution failed"
1628
+ console.log(result.error.statusCode); // 429
1629
+ console.log(result.error.cause?.name); // "RateLimitError"
1630
+ }
1631
+ ```
1632
+
1633
+ **Type change:** `WorkflowState.error` and `WorkflowRunState.error` types changed from `string | Error` to `SerializedError`.
1634
+
1635
+ Other changes:
1636
+ - Added `UpdateWorkflowStateOptions` type for workflow state updates
1637
+
1638
+ - Added `startExclusive` and `endExclusive` options to `dateRange` filter for message queries. ([#11479](https://github.com/mastra-ai/mastra/pull/11479))
1639
+
1640
+ **What changed:** The `filter.dateRange` parameter in `listMessages()` and `Memory.recall()` now supports `startExclusive` and `endExclusive` boolean options. When set to `true`, messages with timestamps exactly matching the boundary are excluded from results.
1641
+
1642
+ **Why this matters:** Enables cursor-based pagination for chat applications. When new messages arrive during a session, offset-based pagination can skip or duplicate messages. Using `endExclusive: true` with the oldest message's timestamp as a cursor ensures consistent pagination without gaps or duplicates.
1643
+
1644
+ **Example:**
1645
+
1646
+ ```typescript
1647
+ // Get first page
1648
+ const page1 = await memory.recall({
1649
+ threadId: 'thread-123',
1650
+ perPage: 10,
1651
+ orderBy: { field: 'createdAt', direction: 'DESC' },
1652
+ });
1653
+
1654
+ // Get next page using cursor-based pagination
1655
+ const oldestMessage = page1.messages[page1.messages.length - 1];
1656
+ const page2 = await memory.recall({
1657
+ threadId: 'thread-123',
1658
+ perPage: 10,
1659
+ orderBy: { field: 'createdAt', direction: 'DESC' },
1660
+ filter: {
1661
+ dateRange: {
1662
+ end: oldestMessage.createdAt,
1663
+ endExclusive: true, // Excludes the cursor message
1664
+ },
1665
+ },
1666
+ });
1667
+ ```
1668
+
1669
+ - Fixed duplicate spans migration issue across all storage backends. When upgrading from older versions, existing duplicate (traceId, spanId) combinations in the spans table could prevent the unique constraint from being created. The migration deduplicates spans before adding the constraint. ([#12073](https://github.com/mastra-ai/mastra/pull/12073))
1670
+
1671
+ **Deduplication rules (in priority order):**
1672
+ 1. Keep completed spans (those with `endedAt` set) over incomplete spans
1673
+ 2. Among spans with the same completion status, keep the one with the newest `updatedAt`
1674
+ 3. Use `createdAt` as the final tiebreaker
1675
+
1676
+ **What changed:**
1677
+ - Added `migrateSpans()` method to observability stores for manual migration
1678
+ - Added `checkSpansMigrationStatus()` method to check if migration is needed
1679
+ - All stores use optimized single-query deduplication to avoid memory issues on large tables
1680
+
1681
+ **Usage example:**
1682
+
1683
+ ```typescript
1684
+ const observability = await storage.getStore('observability');
1685
+ const status = await observability.checkSpansMigrationStatus();
1686
+ if (status.needsMigration) {
1687
+ const result = await observability.migrateSpans();
1688
+ console.log(`Migration complete: ${result.duplicatesRemoved} duplicates removed`);
1689
+ }
1690
+ ```
1691
+
1692
+ Fixes #11840
1693
+
1694
+ - Add storage composition to MastraStorage ([#11401](https://github.com/mastra-ai/mastra/pull/11401))
1695
+
1696
+ `MastraStorage` can now compose storage domains from different adapters. Use it when you need different databases for different purposes - for example, PostgreSQL for memory and workflows, but a different database for observability.
1697
+
1698
+ ```typescript
1699
+ import { MastraStorage } from '@mastra/core/storage';
1700
+ import { MemoryPG, WorkflowsPG, ScoresPG } from '@mastra/pg';
1701
+ import { MemoryLibSQL } from '@mastra/libsql';
1702
+
1703
+ // Compose domains from different stores
1704
+ const storage = new MastraStorage({
1705
+ id: 'composite',
1706
+ domains: {
1707
+ memory: new MemoryLibSQL({ url: 'file:./local.db' }),
1708
+ workflows: new WorkflowsPG({ connectionString: process.env.DATABASE_URL }),
1709
+ scores: new ScoresPG({ connectionString: process.env.DATABASE_URL }),
1710
+ },
1711
+ });
1712
+ ```
1713
+
1714
+ **Breaking changes:**
1715
+ - `storage.supports` property no longer exists
1716
+ - `StorageSupports` type is no longer exported from `@mastra/core/storage`
1717
+
1718
+ All stores now support the same features. For domain availability, use `getStore()`:
1719
+
1720
+ ```typescript
1721
+ const store = await storage.getStore('memory');
1722
+ if (store) {
1723
+ // domain is available
1724
+ }
1725
+ ```
1726
+
1727
+ - - PostgreSQL: use `getSqlType()` in `createTable` instead of `toUpperCase()` ([#11112](https://github.com/mastra-ai/mastra/pull/11112))
1728
+ - LibSQL: use `getSqlType()` in `createTable`, return `JSONB` for jsonb type (matches SQLite 3.45+ support)
1729
+ - ClickHouse: use `getSqlType()` in `createTable` instead of `COLUMN_TYPES` constant, add missing types (uuid, float, boolean)
1730
+ - Remove unused `getSqlType()` and `getDefaultValue()` from `MastraStorage` base class (all stores use `StoreOperations` versions)
1731
+
1732
+ - Add delete workflow run API ([#10991](https://github.com/mastra-ai/mastra/pull/10991))
1733
+
1734
+ ```typescript
1735
+ await workflow.deleteWorkflowRunById(runId);
1736
+ ```
1737
+
1738
+ - Added a unified `transformScoreRow` function in `@mastra/core/storage` that provides schema-driven row transformation for score data. This eliminates code duplication across 10 storage adapters while maintaining store-specific behavior through configurable options: ([#10648](https://github.com/mastra-ai/mastra/pull/10648))
1739
+ - `preferredTimestampFields`: Preferred source fields for timestamps (PostgreSQL, Cloudflare D1)
1740
+ - `convertTimestamps`: Convert timestamp strings to Date objects (MSSQL, MongoDB, ClickHouse)
1741
+ - `nullValuePattern`: Skip values matching pattern (ClickHouse's `'_null_'`)
1742
+ - `fieldMappings`: Map source column names to schema fields (LibSQL's `additionalLLMContext`)
1743
+
1744
+ Each store adapter now uses the unified function with appropriate options, reducing ~200 lines of duplicate transformation logic while ensuring consistent behavior across all storage backends.
1745
+
1746
+ - Added new `listThreads` method for flexible thread filtering across all storage adapters. ([#11832](https://github.com/mastra-ai/mastra/pull/11832))
1747
+
1748
+ **New Features**
1749
+ - Filter threads by `resourceId`, `metadata`, or both (with AND logic for metadata key-value pairs)
1750
+ - All filter parameters are optional, allowing you to list all threads or filter as needed
1751
+ - Full pagination and sorting support
1752
+
1753
+ **Example Usage**
1754
+
1755
+ ```typescript
1756
+ // List all threads
1757
+ const allThreads = await memory.listThreads({});
1758
+
1759
+ // Filter by resourceId only
1760
+ const userThreads = await memory.listThreads({
1761
+ filter: { resourceId: 'user-123' },
1762
+ });
1763
+
1764
+ // Filter by metadata only
1765
+ const supportThreads = await memory.listThreads({
1766
+ filter: { metadata: { category: 'support' } },
1767
+ });
1768
+
1769
+ // Filter by both with pagination
1770
+ const filteredThreads = await memory.listThreads({
1771
+ filter: {
1772
+ resourceId: 'user-123',
1773
+ metadata: { priority: 'high', status: 'open' },
1774
+ },
1775
+ orderBy: { field: 'updatedAt', direction: 'DESC' },
1776
+ page: 0,
1777
+ perPage: 20,
1778
+ });
1779
+ ```
1780
+
1781
+ **Security Improvements**
1782
+ - Added validation to prevent SQL injection via malicious metadata keys
1783
+ - Added pagination parameter validation to prevent integer overflow attacks
1784
+
1785
+ - Add restart method to workflow run that allows restarting an active workflow run ([#9750](https://github.com/mastra-ai/mastra/pull/9750))
1786
+ Add status filter to `listWorkflowRuns`
1787
+ Add automatic restart to restart active workflow runs when server starts
1788
+
1789
+ - Renamed MastraStorage to MastraCompositeStore for better clarity. The old MastraStorage name remains available as a deprecated alias for backward compatibility, but will be removed in a future version. ([#12093](https://github.com/mastra-ai/mastra/pull/12093))
1790
+
1791
+ **Migration:**
1792
+
1793
+ Update your imports and usage:
1794
+
1795
+ ```typescript
1796
+ // Before
1797
+ import { MastraStorage } from '@mastra/core/storage';
1798
+
1799
+ const storage = new MastraStorage({
1800
+ id: 'composite',
1801
+ domains: { ... }
1802
+ });
1803
+
1804
+ // After
1805
+ import { MastraCompositeStore } from '@mastra/core/storage';
1806
+
1807
+ const storage = new MastraCompositeStore({
1808
+ id: 'composite',
1809
+ domains: { ... }
1810
+ });
1811
+ ```
1812
+
1813
+ The new name better reflects that this is a composite storage implementation that routes different domains (workflows, traces, messages) to different underlying stores, avoiding confusion with the general "Mastra Storage" concept.
1814
+
1815
+ - Adds thread cloning to create independent copies of conversations that can diverge. ([#11517](https://github.com/mastra-ai/mastra/pull/11517))
1816
+
1817
+ ```typescript
1818
+ // Clone a thread
1819
+ const { thread, clonedMessages } = await memory.cloneThread({
1820
+ sourceThreadId: 'thread-123',
1821
+ title: 'My Clone',
1822
+ options: {
1823
+ messageLimit: 10, // optional: only copy last N messages
1824
+ },
1825
+ });
1826
+
1827
+ // Check if a thread is a clone
1828
+ if (memory.isClone(thread)) {
1829
+ const source = await memory.getSourceThread(thread.id);
1830
+ }
1831
+
1832
+ // List all clones of a thread
1833
+ const clones = await memory.listClones('thread-123');
1834
+ ```
1835
+
1836
+ Includes:
1837
+ - Storage implementations for InMemory, PostgreSQL, LibSQL, Upstash
1838
+ - API endpoint: `POST /api/memory/threads/:threadId/clone`
1839
+ - Embeddings created for cloned messages (semantic recall)
1840
+ - Clone button in playground UI Memory tab
1841
+
1842
+ - Added pre-configured client support for all storage adapters. ([#11302](https://github.com/mastra-ai/mastra/pull/11302))
1843
+
1844
+ **What changed**
1845
+
1846
+ All storage adapters now accept pre-configured database clients in addition to connection credentials. This allows you to customize client settings (connection pools, timeouts, interceptors) before passing them to Mastra.
1847
+
1848
+ **Example**
1849
+
1850
+ ```typescript
1851
+ import { createClient } from '@clickhouse/client';
1852
+ import { ClickhouseStore } from '@mastra/clickhouse';
1853
+
1854
+ // Create and configure client with custom settings
1855
+ const client = createClient({
1856
+ url: 'http://localhost:8123',
1857
+ username: 'default',
1858
+ password: '',
1859
+ request_timeout: 60000,
1860
+ });
1861
+
1862
+ // Pass pre-configured client to store
1863
+ const store = new ClickhouseStore({
1864
+ id: 'my-store',
1865
+ client,
1866
+ });
1867
+ ```
1868
+
1869
+ **Additional improvements**
1870
+ - Added input validation for required connection parameters (URL, credentials) with clear error messages
1871
+
1872
+ - Updated dependencies [[`ac0d2f4`](https://github.com/mastra-ai/mastra/commit/ac0d2f4ff8831f72c1c66c2be809706d17f65789), [`2319326`](https://github.com/mastra-ai/mastra/commit/2319326f8c64e503a09bbcf14be2dd65405445e0), [`d2d3e22`](https://github.com/mastra-ai/mastra/commit/d2d3e22a419ee243f8812a84e3453dd44365ecb0), [`08766f1`](https://github.com/mastra-ai/mastra/commit/08766f15e13ac0692fde2a8bd366c2e16e4321df), [`72df8ae`](https://github.com/mastra-ai/mastra/commit/72df8ae595584cdd7747d5c39ffaca45e4507227), [`ebae12a`](https://github.com/mastra-ai/mastra/commit/ebae12a2dd0212e75478981053b148a2c246962d), [`c8417b4`](https://github.com/mastra-ai/mastra/commit/c8417b41d9f3486854dc7842d977fbe5e2166264), [`bc72b52`](https://github.com/mastra-ai/mastra/commit/bc72b529ee4478fe89ecd85a8be47ce0127b82a0), [`39c9743`](https://github.com/mastra-ai/mastra/commit/39c97432d084294f8ba85fbf3ef28098ff21459e), [`1dbd8c7`](https://github.com/mastra-ai/mastra/commit/1dbd8c729fb6536ec52f00064d76b80253d346e9), [`c61a0a5`](https://github.com/mastra-ai/mastra/commit/c61a0a5de4904c88fd8b3718bc26d1be1c2ec6e7), [`05b8bee`](https://github.com/mastra-ai/mastra/commit/05b8bee9e50e6c2a4a2bf210eca25ee212ca24fa), [`3076c67`](https://github.com/mastra-ai/mastra/commit/3076c6778b18988ae7d5c4c5c466366974b2d63f), [`3d93a15`](https://github.com/mastra-ai/mastra/commit/3d93a15796b158c617461c8b98bede476ebb43e2), [`9198899`](https://github.com/mastra-ai/mastra/commit/91988995c427b185c33714b7f3be955367911324), [`ed3e3dd`](https://github.com/mastra-ai/mastra/commit/ed3e3ddec69d564fe2b125e083437f76331f1283), [`c59e13c`](https://github.com/mastra-ai/mastra/commit/c59e13c7688284bd96b2baee3e314335003548de), [`c042bd0`](https://github.com/mastra-ai/mastra/commit/c042bd0b743e0e86199d0cb83344ca7690e34a9c), [`f743dbb`](https://github.com/mastra-ai/mastra/commit/f743dbb8b40d1627b5c10c0e6fc154f4ebb6e394), [`21a15de`](https://github.com/mastra-ai/mastra/commit/21a15de369fe82aac26bb642ed7be73505475e8b), [`e54953e`](https://github.com/mastra-ai/mastra/commit/e54953ed8ce1b28c0d62a19950163039af7834b4), [`ae8baf7`](https://github.com/mastra-ai/mastra/commit/ae8baf7d8adcb0ff9dac11880400452bc49b33ff), [`fec5129`](https://github.com/mastra-ai/mastra/commit/fec5129de7fc64423ea03661a56cef31dc747a0d), [`940a2b2`](https://github.com/mastra-ai/mastra/commit/940a2b27480626ed7e74f55806dcd2181c1dd0c2), [`1a0d3fc`](https://github.com/mastra-ai/mastra/commit/1a0d3fc811482c9c376cdf79ee615c23bae9b2d6), [`85d7ee1`](https://github.com/mastra-ai/mastra/commit/85d7ee18ff4e14d625a8a30ec6656bb49804989b), [`c6c1092`](https://github.com/mastra-ai/mastra/commit/c6c1092f8fbf76109303f69e000e96fd1960c4ce), [`0491e7c`](https://github.com/mastra-ai/mastra/commit/0491e7c9b714cb0ba22187ee062147ec2dd7c712), [`f6f4903`](https://github.com/mastra-ai/mastra/commit/f6f4903397314f73362061dc5a3e8e7c61ea34aa), [`d5ed981`](https://github.com/mastra-ai/mastra/commit/d5ed981c8701c1b8a27a5f35a9a2f7d9244e695f), [`85a628b`](https://github.com/mastra-ai/mastra/commit/85a628b1224a8f64cd82ea7f033774bf22df7a7e), [`0e8ed46`](https://github.com/mastra-ai/mastra/commit/0e8ed467c54d6901a6a365f270ec15d6faadb36c), [`33a4d2e`](https://github.com/mastra-ai/mastra/commit/33a4d2e4ed8af51f69256232f00c34d6b6b51d48), [`9650cce`](https://github.com/mastra-ai/mastra/commit/9650cce52a1d917ff9114653398e2a0f5c3ba808), [`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), [`d629361`](https://github.com/mastra-ai/mastra/commit/d629361a60f6565b5bfb11976fdaf7308af858e2), [`4f94ed8`](https://github.com/mastra-ai/mastra/commit/4f94ed8177abfde3ec536e3574883e075423350c), [`feb7ee4`](https://github.com/mastra-ai/mastra/commit/feb7ee4d09a75edb46c6669a3beaceec78811747), [`4aaa844`](https://github.com/mastra-ai/mastra/commit/4aaa844a4f19d054490f43638a990cc57bda8d2f), [`c237233`](https://github.com/mastra-ai/mastra/commit/c23723399ccedf7f5744b3f40997b79246bfbe64), [`38380b6`](https://github.com/mastra-ai/mastra/commit/38380b60fca905824bdf6b43df307a58efb1aa15), [`6833c69`](https://github.com/mastra-ai/mastra/commit/6833c69607418d257750bbcdd84638993d343539), [`932d63d`](https://github.com/mastra-ai/mastra/commit/932d63dd51be9c8bf1e00e3671fe65606c6fb9cd), [`4a1a6cb`](https://github.com/mastra-ai/mastra/commit/4a1a6cb3facad54b2bb6780b00ce91d6de1edc08), [`08c31c1`](https://github.com/mastra-ai/mastra/commit/08c31c188ebccd598acaf55e888b6397d01f7eae), [`919a22b`](https://github.com/mastra-ai/mastra/commit/919a22b25876f9ed5891efe5facbe682c30ff497), [`15f9e21`](https://github.com/mastra-ai/mastra/commit/15f9e216177201ea6e3f6d0bfb063fcc0953444f), [`3443770`](https://github.com/mastra-ai/mastra/commit/3443770662df8eb24c9df3589b2792d78cfcb811), [`69136e7`](https://github.com/mastra-ai/mastra/commit/69136e748e32f57297728a4e0f9a75988462f1a7), [`b0e2ea5`](https://github.com/mastra-ai/mastra/commit/b0e2ea5b52c40fae438b9e2f7baee6f0f89c5442), [`f0a07e0`](https://github.com/mastra-ai/mastra/commit/f0a07e0111b3307c5fabfa4094c5c2cfb734fbe6), [`ff94dea`](https://github.com/mastra-ai/mastra/commit/ff94dea935f4e34545c63bcb6c29804732698809), [`0d41fe2`](https://github.com/mastra-ai/mastra/commit/0d41fe245355dfc66d61a0d9c85d9400aac351ff), [`b760b73`](https://github.com/mastra-ai/mastra/commit/b760b731aca7c8a3f041f61d57a7f125ae9cb215), [`aaa40e7`](https://github.com/mastra-ai/mastra/commit/aaa40e788628b319baa8e889407d11ad626547fa), [`1521d71`](https://github.com/mastra-ai/mastra/commit/1521d716e5daedc74690c983fbd961123c56756b), [`449aed2`](https://github.com/mastra-ai/mastra/commit/449aed2ba9d507b75bf93d427646ea94f734dfd1), [`eb648a2`](https://github.com/mastra-ai/mastra/commit/eb648a2cc1728f7678768dd70cd77619b448dab9), [`695a621`](https://github.com/mastra-ai/mastra/commit/695a621528bdabeb87f83c2277cf2bb084c7f2b4), [`9e1911d`](https://github.com/mastra-ai/mastra/commit/9e1911db2b4db85e0e768c3f15e0d61e319869f6), [`ac3cc23`](https://github.com/mastra-ai/mastra/commit/ac3cc2397d1966bc0fc2736a223abc449d3c7719), [`c456e01`](https://github.com/mastra-ai/mastra/commit/c456e0149e3c176afcefdbd9bb1d2c5917723725), [`ebac155`](https://github.com/mastra-ai/mastra/commit/ebac15564a590117db7078233f927a7e28a85106), [`a86f4df`](https://github.com/mastra-ai/mastra/commit/a86f4df0407311e0d2ea49b9a541f0938810d6a9), [`dd1c38d`](https://github.com/mastra-ai/mastra/commit/dd1c38d1b75f1b695c27b40d8d9d6ed00d5e0f6f), [`5948e6a`](https://github.com/mastra-ai/mastra/commit/5948e6a5146c83666ba3f294b2be576c82a513fb), [`5b2ff46`](https://github.com/mastra-ai/mastra/commit/5b2ff4651df70c146523a7fca773f8eb0a2272f8), [`edb07e4`](https://github.com/mastra-ai/mastra/commit/edb07e49283e0c28bd094a60e03439bf6ecf0221), [`e0941c3`](https://github.com/mastra-ai/mastra/commit/e0941c3d7fc75695d5d258e7008fd5d6e650800c), [`db41688`](https://github.com/mastra-ai/mastra/commit/db4168806d007417e2e60b4f68656dca4e5f40c9), [`2b459f4`](https://github.com/mastra-ai/mastra/commit/2b459f466fd91688eeb2a44801dc23f7f8a887ab), [`798d0c7`](https://github.com/mastra-ai/mastra/commit/798d0c740232653b1d754870e6b43a55c364ffe2), [`0c0580a`](https://github.com/mastra-ai/mastra/commit/0c0580a42f697cd2a7d5973f25bfe7da9055038a), [`8940859`](https://github.com/mastra-ai/mastra/commit/89408593658199b4ad67f7b65e888f344e64a442), [`486352b`](https://github.com/mastra-ai/mastra/commit/486352b66c746602b68a95839f830de14c7fb8c0), [`ab035c2`](https://github.com/mastra-ai/mastra/commit/ab035c2ef6d8cc7bb25f06f1a38508bd9e6f126b), [`e629310`](https://github.com/mastra-ai/mastra/commit/e629310f1a73fa236d49ec7a1d1cceb6229dc7cc), [`0131105`](https://github.com/mastra-ai/mastra/commit/0131105532e83bdcbb73352fc7d0879eebf140dc), [`5ca599d`](https://github.com/mastra-ai/mastra/commit/5ca599d0bb59a1595f19f58473fcd67cc71cef58), [`09e4bae`](https://github.com/mastra-ai/mastra/commit/09e4bae18dd5357d2ae078a4a95a2af32168ab08), [`47b1c16`](https://github.com/mastra-ai/mastra/commit/47b1c16a01c7ffb6765fe1e499b49092f8b7eba3), [`4c6b492`](https://github.com/mastra-ai/mastra/commit/4c6b492c4dd591c6a592520c1f6855d6e936d71f), [`bff1145`](https://github.com/mastra-ai/mastra/commit/bff114556b3cbadad9b2768488708f8ad0e91475), [`dff01d8`](https://github.com/mastra-ai/mastra/commit/dff01d81ce1f4e4087cfac20fa868e6db138dd14), [`9d5059e`](https://github.com/mastra-ai/mastra/commit/9d5059eae810829935fb08e81a9bb7ecd5b144a7), [`ffe84d5`](https://github.com/mastra-ai/mastra/commit/ffe84d54f3b0f85167fe977efd027dba027eb998), [`5c8ca24`](https://github.com/mastra-ai/mastra/commit/5c8ca247094e0cc2cdbd7137822fb47241f86e77), [`9d819d5`](https://github.com/mastra-ai/mastra/commit/9d819d54b61481639f4008e4694791bddf187edd), [`24b76d8`](https://github.com/mastra-ai/mastra/commit/24b76d8e17656269c8ed09a0c038adb9cc2ae95a), [`31d13d5`](https://github.com/mastra-ai/mastra/commit/31d13d5fdc2e2380e2e3ee3ec9fb29d2a00f265d), [`ef756c6`](https://github.com/mastra-ai/mastra/commit/ef756c65f82d16531c43f49a27290a416611e526), [`e191844`](https://github.com/mastra-ai/mastra/commit/e1918444ca3f80e82feef1dad506cd4ec6e2875f), [`243a823`](https://github.com/mastra-ai/mastra/commit/243a8239c5906f5c94e4f78b54676793f7510ae3), [`b00ccd3`](https://github.com/mastra-ai/mastra/commit/b00ccd325ebd5d9e37e34dd0a105caae67eb568f), [`28f5f89`](https://github.com/mastra-ai/mastra/commit/28f5f89705f2409921e3c45178796c0e0d0bbb64), [`22553f1`](https://github.com/mastra-ai/mastra/commit/22553f11c63ee5e966a9c034a349822249584691), [`4c62166`](https://github.com/mastra-ai/mastra/commit/4c621669f4a29b1f443eca3ba70b814afa286266), [`e601b27`](https://github.com/mastra-ai/mastra/commit/e601b272c70f3a5ecca610373aa6223012704892), [`7d56d92`](https://github.com/mastra-ai/mastra/commit/7d56d9213886e8353956d7d40df10045fd12b299), [`81dc110`](https://github.com/mastra-ai/mastra/commit/81dc11008d147cf5bdc8996ead1aa61dbdebb6fc), [`7bcbf10`](https://github.com/mastra-ai/mastra/commit/7bcbf10133516e03df964b941f9a34e9e4ab4177), [`029540c`](https://github.com/mastra-ai/mastra/commit/029540ca1e582fc2dd8d288ecd4a9b0f31a954ef), [`7237163`](https://github.com/mastra-ai/mastra/commit/72371635dbf96a87df4b073cc48fc655afbdce3d), [`2500740`](https://github.com/mastra-ai/mastra/commit/2500740ea23da067d6e50ec71c625ab3ce275e64), [`4353600`](https://github.com/mastra-ai/mastra/commit/43536005a65988a8eede236f69122e7f5a284ba2), [`653e65a`](https://github.com/mastra-ai/mastra/commit/653e65ae1f9502c2958a32f47a5a2df11e612a92), [`873ecbb`](https://github.com/mastra-ai/mastra/commit/873ecbb517586aa17d2f1e99283755b3ebb2863f), [`6986fb0`](https://github.com/mastra-ai/mastra/commit/6986fb064f5db6ecc24aa655e1d26529087b43b3), [`3d3366f`](https://github.com/mastra-ai/mastra/commit/3d3366f31683e7137d126a3a57174a222c5801fb), [`5a4953f`](https://github.com/mastra-ai/mastra/commit/5a4953f7d25bb15ca31ed16038092a39cb3f98b3), [`4f9bbe5`](https://github.com/mastra-ai/mastra/commit/4f9bbe5968f42c86f4930b8193de3c3c17e5bd36), [`efe406a`](https://github.com/mastra-ai/mastra/commit/efe406a1353c24993280ebc2ed61dd9f65b84b26), [`eb9e522`](https://github.com/mastra-ai/mastra/commit/eb9e522ce3070a405e5b949b7bf5609ca51d7fe2), [`fd3d338`](https://github.com/mastra-ai/mastra/commit/fd3d338a2c362174ed5b383f1f011ad9fb0302aa), [`20e6f19`](https://github.com/mastra-ai/mastra/commit/20e6f1971d51d3ff6dd7accad8aaaae826d540ed), [`053e979`](https://github.com/mastra-ai/mastra/commit/053e9793b28e970086b0507f7f3b76ea32c1e838), [`02e51fe`](https://github.com/mastra-ai/mastra/commit/02e51feddb3d4155cfbcc42624fd0d0970d032c0), [`71c8d6c`](https://github.com/mastra-ai/mastra/commit/71c8d6c161253207b2b9588bdadb7eed604f7253), [`7aedb74`](https://github.com/mastra-ai/mastra/commit/7aedb74883adf66af38e270e4068fd42e7a37036), [`3bdfa75`](https://github.com/mastra-ai/mastra/commit/3bdfa7507a91db66f176ba8221aa28dd546e464a), [`119e5c6`](https://github.com/mastra-ai/mastra/commit/119e5c65008f3e5cfca954eefc2eb85e3bf40da4), [`c6fd6fe`](https://github.com/mastra-ai/mastra/commit/c6fd6fedd09e9cf8004b03a80925f5e94826ad7e), [`8f02d80`](https://github.com/mastra-ai/mastra/commit/8f02d800777397e4b45d7f1ad041988a8b0c6630), [`fdac646`](https://github.com/mastra-ai/mastra/commit/fdac646033a0930a1a4e00d13aa64c40bb7f1e02), [`6179a9b`](https://github.com/mastra-ai/mastra/commit/6179a9ba36ffac326de3cc3c43cdc8028d37c251), [`8f3fa3a`](https://github.com/mastra-ai/mastra/commit/8f3fa3a652bb77da092f913ec51ae46e3a7e27dc), [`d07b568`](https://github.com/mastra-ai/mastra/commit/d07b5687819ea8cb1dffa776d0c1765faf4aa1ae), [`e770de9`](https://github.com/mastra-ai/mastra/commit/e770de941a287a49b1964d44db5a5763d19890a6), [`e26dc9c`](https://github.com/mastra-ai/mastra/commit/e26dc9c3ccfec54ae3dc3e2b2589f741f9ae60a6), [`55edf73`](https://github.com/mastra-ai/mastra/commit/55edf7302149d6c964fbb7908b43babfc2b52145), [`c30400a`](https://github.com/mastra-ai/mastra/commit/c30400a49b994b1b97256fe785eb6c906fc2b232), [`486352b`](https://github.com/mastra-ai/mastra/commit/486352b66c746602b68a95839f830de14c7fb8c0), [`00f4921`](https://github.com/mastra-ai/mastra/commit/00f4921dd2c91a1e5446799599ef7116a8214a1a), [`1a46a56`](https://github.com/mastra-ai/mastra/commit/1a46a566f45a3fcbadc1cf36bf86d351f264bfa3), [`ca8041c`](https://github.com/mastra-ai/mastra/commit/ca8041cce0379fda22ed293a565bcb5b6ddca68a), [`b5dc973`](https://github.com/mastra-ai/mastra/commit/b5dc9733a5158850298dfb103acb3babdba8a318), [`7051bf3`](https://github.com/mastra-ai/mastra/commit/7051bf38b3b122a069008f861f7bfc004a6d9f6e), [`a8f1494`](https://github.com/mastra-ai/mastra/commit/a8f1494f4bbdc2770bcf327d4c7d869e332183f1), [`52e2716`](https://github.com/mastra-ai/mastra/commit/52e2716b42df6eff443de72360ae83e86ec23993), [`d7aad50`](https://github.com/mastra-ai/mastra/commit/d7aad501ce61646b76b4b511e558ac4eea9884d0), [`4f0b3c6`](https://github.com/mastra-ai/mastra/commit/4f0b3c66f196c06448487f680ccbb614d281e2f7), [`27b4040`](https://github.com/mastra-ai/mastra/commit/27b4040bfa1a95d92546f420a02a626b1419a1d6), [`c61fac3`](https://github.com/mastra-ai/mastra/commit/c61fac3add96f0dcce0208c07415279e2537eb62), [`6f14f70`](https://github.com/mastra-ai/mastra/commit/6f14f706ccaaf81b69544b6c1b75ab66a41e5317), [`69e0a87`](https://github.com/mastra-ai/mastra/commit/69e0a878896a2da9494945d86e056a5f8f05b851), [`cd29ad2`](https://github.com/mastra-ai/mastra/commit/cd29ad23a255534e8191f249593849ed29160886), [`bdf4d8c`](https://github.com/mastra-ai/mastra/commit/bdf4d8cdc656d8a2c21d81834bfa3bfa70f56c16), [`854e3da`](https://github.com/mastra-ai/mastra/commit/854e3dad5daac17a91a20986399d3a51f54bf68b), [`ce18d38`](https://github.com/mastra-ai/mastra/commit/ce18d38678c65870350d123955014a8432075fd9), [`3cf540b`](https://github.com/mastra-ai/mastra/commit/3cf540b9fbfea8f4fc8d3a2319a4e6c0b0cbfd52), [`352a5d6`](https://github.com/mastra-ai/mastra/commit/352a5d625cfe09849b21e8f52a24c9f0366759d5), [`1c6ce51`](https://github.com/mastra-ai/mastra/commit/1c6ce51f875915ab57fd36873623013699a2a65d), [`74c4f22`](https://github.com/mastra-ai/mastra/commit/74c4f22ed4c71e72598eacc346ba95cdbc00294f), [`3a76a80`](https://github.com/mastra-ai/mastra/commit/3a76a80284cb71a0faa975abb3d4b2a9631e60cd), [`898a972`](https://github.com/mastra-ai/mastra/commit/898a9727d286c2510d6b702dfd367e6aaf5c6b0f), [`0793497`](https://github.com/mastra-ai/mastra/commit/079349753620c40246ffd673e3f9d7d9820beff3), [`09e4bae`](https://github.com/mastra-ai/mastra/commit/09e4bae18dd5357d2ae078a4a95a2af32168ab08), [`026b848`](https://github.com/mastra-ai/mastra/commit/026b8483fbf5b6d977be8f7e6aac8d15c75558ac), [`2c212e7`](https://github.com/mastra-ai/mastra/commit/2c212e704c90e2db83d4109e62c03f0f6ebd2667), [`a97003a`](https://github.com/mastra-ai/mastra/commit/a97003aa1cf2f4022a41912324a1e77263b326b8), [`f9a2509`](https://github.com/mastra-ai/mastra/commit/f9a25093ea72d210a5e52cfcb3bcc8b5e02dc25c), [`66741d1`](https://github.com/mastra-ai/mastra/commit/66741d1a99c4f42cf23a16109939e8348ac6852e), [`ccc141e`](https://github.com/mastra-ai/mastra/commit/ccc141ed27da0abc3a3fc28e9e5128152e8e37f4), [`27c0009`](https://github.com/mastra-ai/mastra/commit/27c0009777a6073d7631b0eb7b481d94e165b5ca), [`01f8878`](https://github.com/mastra-ai/mastra/commit/01f88783de25e4de048c1c8aace43e26373c6ea5), [`dee388d`](https://github.com/mastra-ai/mastra/commit/dee388dde02f2e63c53385ae69252a47ab6825cc), [`610a70b`](https://github.com/mastra-ai/mastra/commit/610a70bdad282079f0c630e0d7bb284578f20151), [`5df9cce`](https://github.com/mastra-ai/mastra/commit/5df9cce1a753438413f64c11eeef8f845745c2a8), [`b7e17d3`](https://github.com/mastra-ai/mastra/commit/b7e17d3f5390bb5a71efc112204413656fcdc18d), [`4c77209`](https://github.com/mastra-ai/mastra/commit/4c77209e6c11678808b365d545845918c40045c8), [`a854ede`](https://github.com/mastra-ai/mastra/commit/a854ede62bf5ac0945a624ac48913dd69c73aabf), [`fe3b897`](https://github.com/mastra-ai/mastra/commit/fe3b897c2ccbcd2b10e81b099438c7337feddf89), [`c576fc0`](https://github.com/mastra-ai/mastra/commit/c576fc0b100b2085afded91a37c97a0ea0ec09c7), [`3defc80`](https://github.com/mastra-ai/mastra/commit/3defc80cf2b88a1b7fc1cc4ddcb91e982a614609), [`00123ba`](https://github.com/mastra-ai/mastra/commit/00123ba96dc9e5cd0b110420ebdba56d8f237b25), [`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), [`4ca4306`](https://github.com/mastra-ai/mastra/commit/4ca430614daa5fa04730205a302a43bf4accfe9f), [`cccf9c8`](https://github.com/mastra-ai/mastra/commit/cccf9c8b2d2dfc1a5e63919395b83d78c89682a0), [`74e504a`](https://github.com/mastra-ai/mastra/commit/74e504a3b584eafd2f198001c6a113bbec589fd3), [`29c4309`](https://github.com/mastra-ai/mastra/commit/29c4309f818b24304c041bcb4a8f19b5f13f6b62), [`16785ce`](https://github.com/mastra-ai/mastra/commit/16785ced928f6f22638f4488cf8a125d99211799), [`57d157f`](https://github.com/mastra-ai/mastra/commit/57d157f0b163a95c3e6c9eae31bdb11d1bfc64f9), [`61a5705`](https://github.com/mastra-ai/mastra/commit/61a570551278b6743e64243b3ce7d73de915ca8a), [`903f67d`](https://github.com/mastra-ai/mastra/commit/903f67d184504a273893818c02b961f5423a79ad), [`3f3fc30`](https://github.com/mastra-ai/mastra/commit/3f3fc3096f24c4a26cffeecfe73085928f72aa63), [`d827d08`](https://github.com/mastra-ai/mastra/commit/d827d0808ffe1f3553a84e975806cc989b9735dd), [`e33fdbd`](https://github.com/mastra-ai/mastra/commit/e33fdbd07b33920d81e823122331b0c0bee0bb59), [`4524734`](https://github.com/mastra-ai/mastra/commit/45247343e384717a7c8404296275c56201d6470f), [`7a010c5`](https://github.com/mastra-ai/mastra/commit/7a010c56b846a313a49ae42fccd3d8de2b9f292d), [`2a90c55`](https://github.com/mastra-ai/mastra/commit/2a90c55a86a9210697d5adaab5ee94584b079adc), [`2a53598`](https://github.com/mastra-ai/mastra/commit/2a53598c6d8cfeb904a7fc74e57e526d751c8fa6), [`81b6a8f`](https://github.com/mastra-ai/mastra/commit/81b6a8ff79f49a7549d15d66624ac1a0b8f5f971), [`8538a0d`](https://github.com/mastra-ai/mastra/commit/8538a0d232619bf55dad7ddc2a8b0ca77c679a87), [`d90ea65`](https://github.com/mastra-ai/mastra/commit/d90ea6536f7aa51c6545a4e9215b55858e98e16d), [`db70a48`](https://github.com/mastra-ai/mastra/commit/db70a48aeeeeb8e5f92007e8ede52c364ce15287), [`261473a`](https://github.com/mastra-ai/mastra/commit/261473ac637e633064a22076671e2e02b002214d), [`eb09742`](https://github.com/mastra-ai/mastra/commit/eb09742197f66c4c38154c3beec78313e69760b2), [`de8239b`](https://github.com/mastra-ai/mastra/commit/de8239bdcb1d8c0cfa06da21f1569912a66bbc8a), [`e4d366a`](https://github.com/mastra-ai/mastra/commit/e4d366aeb500371dd4210d6aa8361a4c21d87034), [`23c10a1`](https://github.com/mastra-ai/mastra/commit/23c10a1efdd9a693c405511ab2dc8a1236603162), [`b5e6cd7`](https://github.com/mastra-ai/mastra/commit/b5e6cd77fc8c8e64e0494c1d06cee3d84e795d1e), [`d171e55`](https://github.com/mastra-ai/mastra/commit/d171e559ead9f52ec728d424844c8f7b164c4510), [`f0fdc14`](https://github.com/mastra-ai/mastra/commit/f0fdc14ee233d619266b3d2bbdeea7d25cfc6d13), [`a4f010b`](https://github.com/mastra-ai/mastra/commit/a4f010b22e4355a5fdee70a1fe0f6e4a692cc29e), [`c7cd3c7`](https://github.com/mastra-ai/mastra/commit/c7cd3c7a187d7aaf79e2ca139de328bf609a14b4), [`db18bc9`](https://github.com/mastra-ai/mastra/commit/db18bc9c3825e2c1a0ad9a183cc9935f6691bfa1), [`96d35f6`](https://github.com/mastra-ai/mastra/commit/96d35f61376bc2b1bf148648a2c1985bd51bef55), [`68ec97d`](https://github.com/mastra-ai/mastra/commit/68ec97d4c07c6393fcf95c2481fc5d73da99f8c8), [`8dc7f55`](https://github.com/mastra-ai/mastra/commit/8dc7f55900395771da851dc7d78d53ae84fe34ec), [`cfabdd4`](https://github.com/mastra-ai/mastra/commit/cfabdd4aae7a726b706942d6836eeca110fb6267), [`9b37b56`](https://github.com/mastra-ai/mastra/commit/9b37b565e1f2a76c24f728945cc740c2b09be9da), [`01b20fe`](https://github.com/mastra-ai/mastra/commit/01b20fefb7c67c2b7d79417598ef4e60256d1225), [`dd4f34c`](https://github.com/mastra-ai/mastra/commit/dd4f34c78cbae24063463475b0619575c415f9b8), [`8379099`](https://github.com/mastra-ai/mastra/commit/8379099fc467af6bef54dd7f80c9bd75bf8bbddf), [`0dbf199`](https://github.com/mastra-ai/mastra/commit/0dbf199110f22192ce5c95b1c8148d4872b4d119), [`5cbe88a`](https://github.com/mastra-ai/mastra/commit/5cbe88aefbd9f933bca669fd371ea36bf939ac6d), [`41a23c3`](https://github.com/mastra-ai/mastra/commit/41a23c32f9877d71810f37e24930515df2ff7a0f), [`a1bd7b8`](https://github.com/mastra-ai/mastra/commit/a1bd7b8571db16b94eb01588f451a74758c96d65), [`d78b38d`](https://github.com/mastra-ai/mastra/commit/d78b38d898fce285260d3bbb4befade54331617f), [`a0a5b4b`](https://github.com/mastra-ai/mastra/commit/a0a5b4bbebe6c701ebbadf744873aa0d5ca01371), [`ce0a73a`](https://github.com/mastra-ai/mastra/commit/ce0a73abeaa75b10ca38f9e40a255a645d50ebfb), [`5d171ad`](https://github.com/mastra-ai/mastra/commit/5d171ad9ef340387276b77c2bb3e83e83332d729), [`0633100`](https://github.com/mastra-ai/mastra/commit/0633100a911ad22f5256471bdf753da21c104742), [`3759cb0`](https://github.com/mastra-ai/mastra/commit/3759cb064935b5f74c65ac2f52a1145f7352899d), [`929f69c`](https://github.com/mastra-ai/mastra/commit/929f69c3436fa20dd0f0e2f7ebe8270bd82a1529), [`c710c16`](https://github.com/mastra-ai/mastra/commit/c710c1652dccfdc4111c8412bca7a6bb1d48b441), [`10c2735`](https://github.com/mastra-ai/mastra/commit/10c27355edfdad1ee2b826b897df74125eb81fb8), [`354ad0b`](https://github.com/mastra-ai/mastra/commit/354ad0b7b1b8183ac567f236a884fc7ede6d7138), [`cfae733`](https://github.com/mastra-ai/mastra/commit/cfae73394f4920635e6c919c8e95ff9a0788e2e5), [`8c0ec25`](https://github.com/mastra-ai/mastra/commit/8c0ec25646c8a7df253ed1e5ff4863a0d3f1316c), [`e3dfda7`](https://github.com/mastra-ai/mastra/commit/e3dfda7b11bf3b8c4bb55637028befb5f387fc74), [`69ea758`](https://github.com/mastra-ai/mastra/commit/69ea758358edd7117f191c2e69c8bb5fc79e7a1a), [`73b0bb3`](https://github.com/mastra-ai/mastra/commit/73b0bb394dba7c9482eb467a97ab283dbc0ef4db), [`651e772`](https://github.com/mastra-ai/mastra/commit/651e772eb1475fb13e126d3fcc01751297a88214), [`a02e542`](https://github.com/mastra-ai/mastra/commit/a02e542d23179bad250b044b17ff023caa61739f), [`f03ae60`](https://github.com/mastra-ai/mastra/commit/f03ae60500fe350c9d828621006cdafe1975fdd8), [`6b3ba91`](https://github.com/mastra-ai/mastra/commit/6b3ba91494cc10394df96782f349a4f7b1e152cc), [`a372c64`](https://github.com/mastra-ai/mastra/commit/a372c640ad1fd12e8f0613cebdc682fc156b4d95), [`993ad98`](https://github.com/mastra-ai/mastra/commit/993ad98d7ad3bebda9ecef5fec5c94349a0d04bc), [`676ccc7`](https://github.com/mastra-ai/mastra/commit/676ccc7fe92468d2d45d39c31a87825c89fd1ea0), [`3ff2c17`](https://github.com/mastra-ai/mastra/commit/3ff2c17a58e312fad5ea37377262c12d92ca0908), [`a0e437f`](https://github.com/mastra-ai/mastra/commit/a0e437fac561b28ee719e0302d72b2f9b4c138f0), [`d1e74a0`](https://github.com/mastra-ai/mastra/commit/d1e74a0a293866dece31022047f5dbab65a304d0), [`844ea5d`](https://github.com/mastra-ai/mastra/commit/844ea5dc0c248961e7bf73629ae7dcff503e853c), [`5627a8c`](https://github.com/mastra-ai/mastra/commit/5627a8c6dc11fe3711b3fa7a6ffd6eb34100a306), [`398fde3`](https://github.com/mastra-ai/mastra/commit/398fde3f39e707cda79372cdae8f9870e3b57c8d), [`c10398d`](https://github.com/mastra-ai/mastra/commit/c10398d5b88f1d4af556f4267ff06f1d11e89179), [`3ff45d1`](https://github.com/mastra-ai/mastra/commit/3ff45d10e0c80c5335a957ab563da72feb623520), [`f0f8f12`](https://github.com/mastra-ai/mastra/commit/f0f8f125c308f2d0fd36942ef652fd852df7522f), [`b61b93f`](https://github.com/mastra-ai/mastra/commit/b61b93f9e058b11dd2eec169853175d31dbdd567), [`bae33d9`](https://github.com/mastra-ai/mastra/commit/bae33d91a63fbb64d1e80519e1fc1acaed1e9013), [`39e7869`](https://github.com/mastra-ai/mastra/commit/39e7869bc7d0ee391077ce291474d8a84eedccff), [`0d7618b`](https://github.com/mastra-ai/mastra/commit/0d7618bc650bf2800934b243eca5648f4aeed9c2), [`7b763e5`](https://github.com/mastra-ai/mastra/commit/7b763e52fc3eaf699c2a99f2adf418dd46e4e9a5), [`251df45`](https://github.com/mastra-ai/mastra/commit/251df4531407dfa46d805feb40ff3fb49769f455), [`d36cfbb`](https://github.com/mastra-ai/mastra/commit/d36cfbbb6565ba5f827883cc9bb648eb14befdc1), [`f894d14`](https://github.com/mastra-ai/mastra/commit/f894d148946629af7b1f452d65a9cf864cec3765), [`8846867`](https://github.com/mastra-ai/mastra/commit/8846867ffa9a3746767618e314bebac08eb77d87), [`1924cf0`](https://github.com/mastra-ai/mastra/commit/1924cf06816e5e4d4d5333065ec0f4bb02a97799), [`c0b731f`](https://github.com/mastra-ai/mastra/commit/c0b731fb27d712dc8582e846df5c0332a6a0c5ba), [`5761926`](https://github.com/mastra-ai/mastra/commit/57619260c4a2cdd598763abbacd90de594c6bc76), [`c2b9547`](https://github.com/mastra-ai/mastra/commit/c2b9547bf435f56339f23625a743b2147ab1c7a6), [`3697853`](https://github.com/mastra-ai/mastra/commit/3697853deeb72017d90e0f38a93c1e29221aeca0), [`c900fdd`](https://github.com/mastra-ai/mastra/commit/c900fdd504c41348efdffb205cfe80d48c38fa33), [`9312dcd`](https://github.com/mastra-ai/mastra/commit/9312dcd1c6f5b321929e7d382e763d95fdc030f5), [`b2e45ec`](https://github.com/mastra-ai/mastra/commit/b2e45eca727a8db01a81ba93f1a5219c7183c839), [`5d7000f`](https://github.com/mastra-ai/mastra/commit/5d7000f757cd65ea9dc5b05e662fd83dfd44e932), [`43ca8f2`](https://github.com/mastra-ai/mastra/commit/43ca8f2c7334851cc7b4d3d2f037d8784bfbdd5f), [`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), [`ad6250d`](https://github.com/mastra-ai/mastra/commit/ad6250dbdaad927e29f74a27b83f6c468b50a705), [`580b592`](https://github.com/mastra-ai/mastra/commit/580b5927afc82fe460dfdf9a38a902511b6b7e7f), [`604a79f`](https://github.com/mastra-ai/mastra/commit/604a79fecf276e26a54a3fe01bb94e65315d2e0e), [`42a42cf`](https://github.com/mastra-ai/mastra/commit/42a42cf3132b9786feecbb8c13c583dce5b0e198), [`3f2faf2`](https://github.com/mastra-ai/mastra/commit/3f2faf2e2d685d6c053cc5af1bf9fedf267b2ce5), [`22f64bc`](https://github.com/mastra-ai/mastra/commit/22f64bc1d37149480b58bf2fefe35b79a1e3e7d5), [`ff4d9a6`](https://github.com/mastra-ai/mastra/commit/ff4d9a6704fc87b31a380a76ed22736fdedbba5a), [`50fd320`](https://github.com/mastra-ai/mastra/commit/50fd320003d0d93831c230ef531bef41f5ba7b3a), [`847c212`](https://github.com/mastra-ai/mastra/commit/847c212caba7df0d6f2fc756b494ac3c75c3720d), [`69821ef`](https://github.com/mastra-ai/mastra/commit/69821ef806482e2c44e2197ac0b050c3fe3a5285), [`3a73998`](https://github.com/mastra-ai/mastra/commit/3a73998fa4ebeb7f3dc9301afe78095fc63e7999), [`ffa553a`](https://github.com/mastra-ai/mastra/commit/ffa553a3edc1bd17d73669fba66d6b6f4ac10897), [`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc), [`58e3931`](https://github.com/mastra-ai/mastra/commit/58e3931af9baa5921688566210f00fb0c10479fa), [`ae08bf0`](https://github.com/mastra-ai/mastra/commit/ae08bf0ebc6a4e4da992b711c4a389c32ba84cf4), [`0bed332`](https://github.com/mastra-ai/mastra/commit/0bed332843f627202c6520eaf671771313cd20f3), [`887f0b4`](https://github.com/mastra-ai/mastra/commit/887f0b4746cdbd7cb7d6b17ac9f82aeb58037ea5), [`2562143`](https://github.com/mastra-ai/mastra/commit/256214336b4faa78646c9c1776612393790d8784), [`b7959e6`](https://github.com/mastra-ai/mastra/commit/b7959e6e25a46b480f9ea2217c4c6c588c423791), [`a7ce182`](https://github.com/mastra-ai/mastra/commit/a7ce1822a8785ce45d62dd5c911af465e144f7d7), [`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), [`bec5efd`](https://github.com/mastra-ai/mastra/commit/bec5efde96653ccae6604e68c696d1bc6c1a0bf5), [`5947fcd`](https://github.com/mastra-ai/mastra/commit/5947fcdd425531f29f9422026d466c2ee3113c93), [`4aa55b3`](https://github.com/mastra-ai/mastra/commit/4aa55b383cf06043943359ea316572fd969861a7), [`21735a7`](https://github.com/mastra-ai/mastra/commit/21735a7ef306963554a69a89b44f06c3bcd85141), [`735d8c1`](https://github.com/mastra-ai/mastra/commit/735d8c1c0d19fbc09e6f8b66cf41bc7655993838), [`7907fd1`](https://github.com/mastra-ai/mastra/commit/7907fd1c5059813b7b870b81ca71041dc807331b), [`1ed5716`](https://github.com/mastra-ai/mastra/commit/1ed5716830867b3774c4a1b43cc0d82935f32b96), [`acf322e`](https://github.com/mastra-ai/mastra/commit/acf322e0f1fd0189684cf529d91c694bea918a45), [`2ca67cc`](https://github.com/mastra-ai/mastra/commit/2ca67cc3bb1f6a617353fdcab197d9efebe60d6f), [`9eedf7d`](https://github.com/mastra-ai/mastra/commit/9eedf7de1d6e0022a2f4e5e9e6fe1ec468f9b43c), [`b339816`](https://github.com/mastra-ai/mastra/commit/b339816df0984d0243d944ac2655d6ba5f809cde), [`e16d553`](https://github.com/mastra-ai/mastra/commit/e16d55338403c7553531cc568125c63d53653dff), [`6f941c4`](https://github.com/mastra-ai/mastra/commit/6f941c438ca5f578619788acc7608fc2e23bd176), [`4186bdd`](https://github.com/mastra-ai/mastra/commit/4186bdd00731305726fa06adba0b076a1d50b49f), [`08bb631`](https://github.com/mastra-ai/mastra/commit/08bb631ae2b14684b2678e3549d0b399a6f0561e), [`c942802`](https://github.com/mastra-ai/mastra/commit/c942802a477a925b01859a7b8688d4355715caaa), [`4f0331a`](https://github.com/mastra-ai/mastra/commit/4f0331a79bf6eb5ee598a5086e55de4b5a0ada03), [`a0c8c1b`](https://github.com/mastra-ai/mastra/commit/a0c8c1b87d4fee252aebda73e8637fbe01d761c9), [`1d877b8`](https://github.com/mastra-ai/mastra/commit/1d877b8d7b536a251c1a7a18db7ddcf4f68d6f8b), [`cc34739`](https://github.com/mastra-ai/mastra/commit/cc34739c34b6266a91bea561119240a7acf47887), [`c218bd3`](https://github.com/mastra-ai/mastra/commit/c218bd3759e32423735b04843a09404572631014), [`9e67002`](https://github.com/mastra-ai/mastra/commit/9e67002b52c9be19936c420a489dbee9c5fd6a78), [`7aaf973`](https://github.com/mastra-ai/mastra/commit/7aaf973f83fbbe9521f1f9e7a4fd99b8de464617), [`2c4438b`](https://github.com/mastra-ai/mastra/commit/2c4438b87817ab7eed818c7990fef010475af1a3), [`35edc49`](https://github.com/mastra-ai/mastra/commit/35edc49ac0556db609189641d6341e76771b81fc), [`4d59f58`](https://github.com/mastra-ai/mastra/commit/4d59f58de2d90d6e2810a19d4518e38ddddb9038), [`ef11a61`](https://github.com/mastra-ai/mastra/commit/ef11a61920fa0ed08a5b7ceedd192875af119749), [`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), [`351a11f`](https://github.com/mastra-ai/mastra/commit/351a11fcaf2ed1008977fa9b9a489fc422e51cd4), [`8a73529`](https://github.com/mastra-ai/mastra/commit/8a73529ca01187f604b1f3019d0a725ac63ae55f), [`e59e0d3`](https://github.com/mastra-ai/mastra/commit/e59e0d32afb5fcf2c9f3c00c8f81f6c21d3a63fa), [`4fba91b`](https://github.com/mastra-ai/mastra/commit/4fba91bec7c95911dc28e369437596b152b04cd0), [`465ac05`](https://github.com/mastra-ai/mastra/commit/465ac0526a91d175542091c675181f1a96c98c46), [`fa8409b`](https://github.com/mastra-ai/mastra/commit/fa8409bc39cfd8ba6643b9db5269b90b22e2a2f7), [`8a000da`](https://github.com/mastra-ai/mastra/commit/8a000da0c09c679a2312f6b3aa05b2ca78ca7393), [`e7266a2`](https://github.com/mastra-ai/mastra/commit/e7266a278db02035c97a5e9cd9d1669a6b7a535d), [`173c535`](https://github.com/mastra-ai/mastra/commit/173c535c0645b0da404fe09f003778f0b0d4e019), [`12b0cc4`](https://github.com/mastra-ai/mastra/commit/12b0cc4077d886b1a552637dedb70a7ade93528c), [`3bf6c5f`](https://github.com/mastra-ai/mastra/commit/3bf6c5f104c25226cd84e0c77f9dec15f2cac2db)]:
1873
+ - @mastra/core@1.0.0
1874
+
1875
+ ## 1.0.0-beta.14
1876
+
1877
+ ### Patch Changes
1878
+
1879
+ - Fixed duplicate spans migration issue across all storage backends. When upgrading from older versions, existing duplicate (traceId, spanId) combinations in the spans table could prevent the unique constraint from being created. The migration deduplicates spans before adding the constraint. ([#12073](https://github.com/mastra-ai/mastra/pull/12073))
1880
+
1881
+ **Deduplication rules (in priority order):**
1882
+ 1. Keep completed spans (those with `endedAt` set) over incomplete spans
1883
+ 2. Among spans with the same completion status, keep the one with the newest `updatedAt`
1884
+ 3. Use `createdAt` as the final tiebreaker
1885
+
1886
+ **What changed:**
1887
+ - Added `migrateSpans()` method to observability stores for manual migration
1888
+ - Added `checkSpansMigrationStatus()` method to check if migration is needed
1889
+ - All stores use optimized single-query deduplication to avoid memory issues on large tables
1890
+
1891
+ **Usage example:**
1892
+
1893
+ ```typescript
1894
+ const observability = await storage.getStore('observability');
1895
+ const status = await observability.checkSpansMigrationStatus();
1896
+ if (status.needsMigration) {
1897
+ const result = await observability.migrateSpans();
1898
+ console.log(`Migration complete: ${result.duplicatesRemoved} duplicates removed`);
1899
+ }
1900
+ ```
1901
+
1902
+ Fixes #11840
1903
+
1904
+ - Renamed MastraStorage to MastraCompositeStore for better clarity. The old MastraStorage name remains available as a deprecated alias for backward compatibility, but will be removed in a future version. ([#12093](https://github.com/mastra-ai/mastra/pull/12093))
1905
+
1906
+ **Migration:**
1907
+
1908
+ Update your imports and usage:
1909
+
1910
+ ```typescript
1911
+ // Before
1912
+ import { MastraStorage } from '@mastra/core/storage';
1913
+
1914
+ const storage = new MastraStorage({
1915
+ id: 'composite',
1916
+ domains: { ... }
1917
+ });
1918
+
1919
+ // After
1920
+ import { MastraCompositeStore } from '@mastra/core/storage';
1921
+
1922
+ const storage = new MastraCompositeStore({
1923
+ id: 'composite',
1924
+ domains: { ... }
1925
+ });
1926
+ ```
1927
+
1928
+ The new name better reflects that this is a composite storage implementation that routes different domains (workflows, traces, messages) to different underlying stores, avoiding confusion with the general "Mastra Storage" concept.
1929
+
1930
+ - Updated dependencies [[`026b848`](https://github.com/mastra-ai/mastra/commit/026b8483fbf5b6d977be8f7e6aac8d15c75558ac), [`ffa553a`](https://github.com/mastra-ai/mastra/commit/ffa553a3edc1bd17d73669fba66d6b6f4ac10897)]:
1931
+ - @mastra/core@1.0.0-beta.26
1932
+
1933
+ ## 1.0.0-beta.13
1934
+
1935
+ ### Patch Changes
1936
+
1937
+ - Added new `listThreads` method for flexible thread filtering across all storage adapters. ([#11832](https://github.com/mastra-ai/mastra/pull/11832))
1938
+
1939
+ **New Features**
1940
+ - Filter threads by `resourceId`, `metadata`, or both (with AND logic for metadata key-value pairs)
1941
+ - All filter parameters are optional, allowing you to list all threads or filter as needed
1942
+ - Full pagination and sorting support
1943
+
1944
+ **Example Usage**
1945
+
1946
+ ```typescript
1947
+ // List all threads
1948
+ const allThreads = await memory.listThreads({});
1949
+
1950
+ // Filter by resourceId only
1951
+ const userThreads = await memory.listThreads({
1952
+ filter: { resourceId: 'user-123' },
1953
+ });
1954
+
1955
+ // Filter by metadata only
1956
+ const supportThreads = await memory.listThreads({
1957
+ filter: { metadata: { category: 'support' } },
1958
+ });
1959
+
1960
+ // Filter by both with pagination
1961
+ const filteredThreads = await memory.listThreads({
1962
+ filter: {
1963
+ resourceId: 'user-123',
1964
+ metadata: { priority: 'high', status: 'open' },
1965
+ },
1966
+ orderBy: { field: 'updatedAt', direction: 'DESC' },
1967
+ page: 0,
1968
+ perPage: 20,
1969
+ });
1970
+ ```
1971
+
1972
+ **Security Improvements**
1973
+ - Added validation to prevent SQL injection via malicious metadata keys
1974
+ - Added pagination parameter validation to prevent integer overflow attacks
1975
+
1976
+ - Updated dependencies [[`ed3e3dd`](https://github.com/mastra-ai/mastra/commit/ed3e3ddec69d564fe2b125e083437f76331f1283), [`6833c69`](https://github.com/mastra-ai/mastra/commit/6833c69607418d257750bbcdd84638993d343539), [`47b1c16`](https://github.com/mastra-ai/mastra/commit/47b1c16a01c7ffb6765fe1e499b49092f8b7eba3), [`3a76a80`](https://github.com/mastra-ai/mastra/commit/3a76a80284cb71a0faa975abb3d4b2a9631e60cd), [`8538a0d`](https://github.com/mastra-ai/mastra/commit/8538a0d232619bf55dad7ddc2a8b0ca77c679a87), [`9312dcd`](https://github.com/mastra-ai/mastra/commit/9312dcd1c6f5b321929e7d382e763d95fdc030f5)]:
1977
+ - @mastra/core@1.0.0-beta.25
1978
+
1979
+ ## 1.0.0-beta.12
1980
+
1981
+ ### Minor Changes
1982
+
1983
+ - Changed JSON columns from TEXT to JSONB in `mastra_threads` and `mastra_workflow_snapshot` tables. ([#11853](https://github.com/mastra-ai/mastra/pull/11853))
1984
+
1985
+ **Why this change?**
1986
+
1987
+ These were the last remaining columns storing JSON as TEXT. This change aligns them with other tables that already use JSONB, enabling native JSON operators and improved performance. See [#8978](https://github.com/mastra-ai/mastra/issues/8978) for details.
1988
+
1989
+ **Columns Changed:**
1990
+ - `mastra_threads.metadata` - Thread metadata
1991
+ - `mastra_workflow_snapshot.snapshot` - Workflow run state
1992
+
1993
+ **PostgreSQL**
1994
+
1995
+ Migration Required - PostgreSQL enforces column types, so existing tables must be migrated. Note: Migration will fail if existing column values contain invalid JSON.
1996
+
1997
+ ```sql
1998
+ ALTER TABLE mastra_threads
1999
+ ALTER COLUMN metadata TYPE jsonb
2000
+ USING metadata::jsonb;
2001
+
2002
+ ALTER TABLE mastra_workflow_snapshot
2003
+ ALTER COLUMN snapshot TYPE jsonb
2004
+ USING snapshot::jsonb;
2005
+ ```
2006
+
2007
+ **LibSQL**
2008
+
2009
+ No Migration Required - LibSQL now uses native SQLite JSONB format (added in SQLite 3.45) for ~3x performance improvement on JSON operations. The changes are fully backwards compatible:
2010
+ - Existing TEXT JSON data continues to work
2011
+ - New data is stored in binary JSONB format
2012
+ - Both formats can coexist in the same table
2013
+ - All JSON functions (`json_extract`, etc.) work on both formats
2014
+
2015
+ New installations automatically use JSONB. Existing applications continue to work without any changes.
2016
+
2017
+ - Aligned vector store configuration with underlying library APIs, giving you access to all library options directly. ([#11742](https://github.com/mastra-ai/mastra/pull/11742))
2018
+
2019
+ **Why this change?**
2020
+
2021
+ Previously, each vector store defined its own configuration types that only exposed a subset of the underlying library's options. This meant users couldn't access advanced features like authentication, SSL, compression, or custom headers without creating their own client instances. Now, the configuration types extend the library types directly, so all options are available.
2022
+
2023
+ **@mastra/libsql** (Breaking)
2024
+
2025
+ Renamed `connectionUrl` to `url` to match the `@libsql/client` API and align with LibSQLStorage.
2026
+
2027
+ ```typescript
2028
+ // Before
2029
+ new LibSQLVector({ id: 'my-vector', connectionUrl: 'file:./db.sqlite' });
2030
+
2031
+ // After
2032
+ new LibSQLVector({ id: 'my-vector', url: 'file:./db.sqlite' });
2033
+ ```
2034
+
2035
+ **@mastra/opensearch** (Breaking)
2036
+
2037
+ Renamed `url` to `node` and added support for all OpenSearch `ClientOptions` including authentication, SSL, and compression.
2038
+
2039
+ ```typescript
2040
+ // Before
2041
+ new OpenSearchVector({ id: 'my-vector', url: 'http://localhost:9200' });
2042
+
2043
+ // After
2044
+ new OpenSearchVector({ id: 'my-vector', node: 'http://localhost:9200' });
2045
+
2046
+ // With authentication (now possible)
2047
+ new OpenSearchVector({
2048
+ id: 'my-vector',
2049
+ node: 'https://localhost:9200',
2050
+ auth: { username: 'admin', password: 'admin' },
2051
+ ssl: { rejectUnauthorized: false },
2052
+ });
2053
+ ```
2054
+
2055
+ **@mastra/pinecone** (Breaking)
2056
+
2057
+ Removed `environment` parameter. Use `controllerHostUrl` instead (the actual Pinecone SDK field name). Added support for all `PineconeConfiguration` options.
2058
+
2059
+ ```typescript
2060
+ // Before
2061
+ new PineconeVector({ id: 'my-vector', apiKey: '...', environment: '...' });
2062
+
2063
+ // After
2064
+ new PineconeVector({ id: 'my-vector', apiKey: '...' });
2065
+
2066
+ // With custom controller host (if needed)
2067
+ new PineconeVector({ id: 'my-vector', apiKey: '...', controllerHostUrl: '...' });
2068
+ ```
2069
+
2070
+ **@mastra/clickhouse**
2071
+
2072
+ Added support for all `ClickHouseClientConfigOptions` like `request_timeout`, `compression`, `keep_alive`, and `database`. Existing configurations continue to work unchanged.
2073
+
2074
+ **@mastra/cloudflare, @mastra/cloudflare-d1, @mastra/lance, @mastra/libsql, @mastra/mongodb, @mastra/pg, @mastra/upstash**
2075
+
2076
+ Improved logging by replacing `console.warn` with structured logger in workflow storage domains.
2077
+
2078
+ **@mastra/deployer-cloud**
2079
+
2080
+ Updated internal LibSQLVector configuration for compatibility with the new API.
2081
+
2082
+ ### Patch Changes
2083
+
2084
+ - Updated dependencies [[`ebae12a`](https://github.com/mastra-ai/mastra/commit/ebae12a2dd0212e75478981053b148a2c246962d), [`c61a0a5`](https://github.com/mastra-ai/mastra/commit/c61a0a5de4904c88fd8b3718bc26d1be1c2ec6e7), [`69136e7`](https://github.com/mastra-ai/mastra/commit/69136e748e32f57297728a4e0f9a75988462f1a7), [`449aed2`](https://github.com/mastra-ai/mastra/commit/449aed2ba9d507b75bf93d427646ea94f734dfd1), [`eb648a2`](https://github.com/mastra-ai/mastra/commit/eb648a2cc1728f7678768dd70cd77619b448dab9), [`0131105`](https://github.com/mastra-ai/mastra/commit/0131105532e83bdcbb73352fc7d0879eebf140dc), [`9d5059e`](https://github.com/mastra-ai/mastra/commit/9d5059eae810829935fb08e81a9bb7ecd5b144a7), [`ef756c6`](https://github.com/mastra-ai/mastra/commit/ef756c65f82d16531c43f49a27290a416611e526), [`b00ccd3`](https://github.com/mastra-ai/mastra/commit/b00ccd325ebd5d9e37e34dd0a105caae67eb568f), [`3bdfa75`](https://github.com/mastra-ai/mastra/commit/3bdfa7507a91db66f176ba8221aa28dd546e464a), [`e770de9`](https://github.com/mastra-ai/mastra/commit/e770de941a287a49b1964d44db5a5763d19890a6), [`52e2716`](https://github.com/mastra-ai/mastra/commit/52e2716b42df6eff443de72360ae83e86ec23993), [`27b4040`](https://github.com/mastra-ai/mastra/commit/27b4040bfa1a95d92546f420a02a626b1419a1d6), [`610a70b`](https://github.com/mastra-ai/mastra/commit/610a70bdad282079f0c630e0d7bb284578f20151), [`8dc7f55`](https://github.com/mastra-ai/mastra/commit/8dc7f55900395771da851dc7d78d53ae84fe34ec), [`8379099`](https://github.com/mastra-ai/mastra/commit/8379099fc467af6bef54dd7f80c9bd75bf8bbddf), [`8c0ec25`](https://github.com/mastra-ai/mastra/commit/8c0ec25646c8a7df253ed1e5ff4863a0d3f1316c), [`ff4d9a6`](https://github.com/mastra-ai/mastra/commit/ff4d9a6704fc87b31a380a76ed22736fdedbba5a), [`69821ef`](https://github.com/mastra-ai/mastra/commit/69821ef806482e2c44e2197ac0b050c3fe3a5285), [`1ed5716`](https://github.com/mastra-ai/mastra/commit/1ed5716830867b3774c4a1b43cc0d82935f32b96), [`4186bdd`](https://github.com/mastra-ai/mastra/commit/4186bdd00731305726fa06adba0b076a1d50b49f), [`7aaf973`](https://github.com/mastra-ai/mastra/commit/7aaf973f83fbbe9521f1f9e7a4fd99b8de464617)]:
2085
+ - @mastra/core@1.0.0-beta.22
2086
+
2087
+ ## 1.0.0-beta.11
2088
+
2089
+ ### Patch Changes
2090
+
2091
+ - Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))
2092
+
2093
+ Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.
2094
+
2095
+ Each package includes:
2096
+ - **SKILL.md** - Entry point explaining the package's purpose and capabilities
2097
+ - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files
2098
+ - **Topic folders** - Conceptual documentation organized by feature area
2099
+
2100
+ Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.
2101
+
2102
+ - Added `startExclusive` and `endExclusive` options to `dateRange` filter for message queries. ([#11479](https://github.com/mastra-ai/mastra/pull/11479))
2103
+
2104
+ **What changed:** The `filter.dateRange` parameter in `listMessages()` and `Memory.recall()` now supports `startExclusive` and `endExclusive` boolean options. When set to `true`, messages with timestamps exactly matching the boundary are excluded from results.
2105
+
2106
+ **Why this matters:** Enables cursor-based pagination for chat applications. When new messages arrive during a session, offset-based pagination can skip or duplicate messages. Using `endExclusive: true` with the oldest message's timestamp as a cursor ensures consistent pagination without gaps or duplicates.
2107
+
2108
+ **Example:**
2109
+
2110
+ ```typescript
2111
+ // Get first page
2112
+ const page1 = await memory.recall({
2113
+ threadId: 'thread-123',
2114
+ perPage: 10,
2115
+ orderBy: { field: 'createdAt', direction: 'DESC' },
2116
+ });
2117
+
2118
+ // Get next page using cursor-based pagination
2119
+ const oldestMessage = page1.messages[page1.messages.length - 1];
2120
+ const page2 = await memory.recall({
2121
+ threadId: 'thread-123',
2122
+ perPage: 10,
2123
+ orderBy: { field: 'createdAt', direction: 'DESC' },
2124
+ filter: {
2125
+ dateRange: {
2126
+ end: oldestMessage.createdAt,
2127
+ endExclusive: true, // Excludes the cursor message
2128
+ },
2129
+ },
2130
+ });
2131
+ ```
2132
+
2133
+ - Adds thread cloning to create independent copies of conversations that can diverge. ([#11517](https://github.com/mastra-ai/mastra/pull/11517))
2134
+
2135
+ ```typescript
2136
+ // Clone a thread
2137
+ const { thread, clonedMessages } = await memory.cloneThread({
2138
+ sourceThreadId: 'thread-123',
2139
+ title: 'My Clone',
2140
+ options: {
2141
+ messageLimit: 10, // optional: only copy last N messages
2142
+ },
2143
+ });
2144
+
2145
+ // Check if a thread is a clone
2146
+ if (memory.isClone(thread)) {
2147
+ const source = await memory.getSourceThread(thread.id);
2148
+ }
2149
+
2150
+ // List all clones of a thread
2151
+ const clones = await memory.listClones('thread-123');
2152
+ ```
2153
+
2154
+ Includes:
2155
+ - Storage implementations for InMemory, PostgreSQL, LibSQL, Upstash
2156
+ - API endpoint: `POST /api/memory/threads/:threadId/clone`
2157
+ - Embeddings created for cloned messages (semantic recall)
2158
+ - Clone button in playground UI Memory tab
2159
+
2160
+ - Updated dependencies [[`d2d3e22`](https://github.com/mastra-ai/mastra/commit/d2d3e22a419ee243f8812a84e3453dd44365ecb0), [`bc72b52`](https://github.com/mastra-ai/mastra/commit/bc72b529ee4478fe89ecd85a8be47ce0127b82a0), [`05b8bee`](https://github.com/mastra-ai/mastra/commit/05b8bee9e50e6c2a4a2bf210eca25ee212ca24fa), [`c042bd0`](https://github.com/mastra-ai/mastra/commit/c042bd0b743e0e86199d0cb83344ca7690e34a9c), [`940a2b2`](https://github.com/mastra-ai/mastra/commit/940a2b27480626ed7e74f55806dcd2181c1dd0c2), [`e0941c3`](https://github.com/mastra-ai/mastra/commit/e0941c3d7fc75695d5d258e7008fd5d6e650800c), [`0c0580a`](https://github.com/mastra-ai/mastra/commit/0c0580a42f697cd2a7d5973f25bfe7da9055038a), [`28f5f89`](https://github.com/mastra-ai/mastra/commit/28f5f89705f2409921e3c45178796c0e0d0bbb64), [`e601b27`](https://github.com/mastra-ai/mastra/commit/e601b272c70f3a5ecca610373aa6223012704892), [`3d3366f`](https://github.com/mastra-ai/mastra/commit/3d3366f31683e7137d126a3a57174a222c5801fb), [`5a4953f`](https://github.com/mastra-ai/mastra/commit/5a4953f7d25bb15ca31ed16038092a39cb3f98b3), [`eb9e522`](https://github.com/mastra-ai/mastra/commit/eb9e522ce3070a405e5b949b7bf5609ca51d7fe2), [`20e6f19`](https://github.com/mastra-ai/mastra/commit/20e6f1971d51d3ff6dd7accad8aaaae826d540ed), [`4f0b3c6`](https://github.com/mastra-ai/mastra/commit/4f0b3c66f196c06448487f680ccbb614d281e2f7), [`74c4f22`](https://github.com/mastra-ai/mastra/commit/74c4f22ed4c71e72598eacc346ba95cdbc00294f), [`81b6a8f`](https://github.com/mastra-ai/mastra/commit/81b6a8ff79f49a7549d15d66624ac1a0b8f5f971), [`e4d366a`](https://github.com/mastra-ai/mastra/commit/e4d366aeb500371dd4210d6aa8361a4c21d87034), [`a4f010b`](https://github.com/mastra-ai/mastra/commit/a4f010b22e4355a5fdee70a1fe0f6e4a692cc29e), [`73b0bb3`](https://github.com/mastra-ai/mastra/commit/73b0bb394dba7c9482eb467a97ab283dbc0ef4db), [`5627a8c`](https://github.com/mastra-ai/mastra/commit/5627a8c6dc11fe3711b3fa7a6ffd6eb34100a306), [`3ff45d1`](https://github.com/mastra-ai/mastra/commit/3ff45d10e0c80c5335a957ab563da72feb623520), [`251df45`](https://github.com/mastra-ai/mastra/commit/251df4531407dfa46d805feb40ff3fb49769f455), [`f894d14`](https://github.com/mastra-ai/mastra/commit/f894d148946629af7b1f452d65a9cf864cec3765), [`c2b9547`](https://github.com/mastra-ai/mastra/commit/c2b9547bf435f56339f23625a743b2147ab1c7a6), [`580b592`](https://github.com/mastra-ai/mastra/commit/580b5927afc82fe460dfdf9a38a902511b6b7e7f), [`58e3931`](https://github.com/mastra-ai/mastra/commit/58e3931af9baa5921688566210f00fb0c10479fa), [`08bb631`](https://github.com/mastra-ai/mastra/commit/08bb631ae2b14684b2678e3549d0b399a6f0561e), [`4fba91b`](https://github.com/mastra-ai/mastra/commit/4fba91bec7c95911dc28e369437596b152b04cd0), [`12b0cc4`](https://github.com/mastra-ai/mastra/commit/12b0cc4077d886b1a552637dedb70a7ade93528c)]:
2161
+ - @mastra/core@1.0.0-beta.20
2162
+
2163
+ ## 1.0.0-beta.10
2164
+
2165
+ ### Patch Changes
2166
+
2167
+ - Add storage composition to MastraStorage ([#11401](https://github.com/mastra-ai/mastra/pull/11401))
2168
+
2169
+ `MastraStorage` can now compose storage domains from different adapters. Use it when you need different databases for different purposes - for example, PostgreSQL for memory and workflows, but a different database for observability.
2170
+
2171
+ ```typescript
2172
+ import { MastraStorage } from '@mastra/core/storage';
2173
+ import { MemoryPG, WorkflowsPG, ScoresPG } from '@mastra/pg';
2174
+ import { MemoryLibSQL } from '@mastra/libsql';
2175
+
2176
+ // Compose domains from different stores
2177
+ const storage = new MastraStorage({
2178
+ id: 'composite',
2179
+ domains: {
2180
+ memory: new MemoryLibSQL({ url: 'file:./local.db' }),
2181
+ workflows: new WorkflowsPG({ connectionString: process.env.DATABASE_URL }),
2182
+ scores: new ScoresPG({ connectionString: process.env.DATABASE_URL }),
2183
+ },
2184
+ });
2185
+ ```
2186
+
2187
+ **Breaking changes:**
2188
+ - `storage.supports` property no longer exists
2189
+ - `StorageSupports` type is no longer exported from `@mastra/core/storage`
2190
+
2191
+ All stores now support the same features. For domain availability, use `getStore()`:
2192
+
2193
+ ```typescript
2194
+ const store = await storage.getStore('memory');
2195
+ if (store) {
2196
+ // domain is available
2197
+ }
2198
+ ```
2199
+
2200
+ - Updated dependencies [[`3d93a15`](https://github.com/mastra-ai/mastra/commit/3d93a15796b158c617461c8b98bede476ebb43e2), [`efe406a`](https://github.com/mastra-ai/mastra/commit/efe406a1353c24993280ebc2ed61dd9f65b84b26), [`119e5c6`](https://github.com/mastra-ai/mastra/commit/119e5c65008f3e5cfca954eefc2eb85e3bf40da4), [`74e504a`](https://github.com/mastra-ai/mastra/commit/74e504a3b584eafd2f198001c6a113bbec589fd3), [`e33fdbd`](https://github.com/mastra-ai/mastra/commit/e33fdbd07b33920d81e823122331b0c0bee0bb59), [`929f69c`](https://github.com/mastra-ai/mastra/commit/929f69c3436fa20dd0f0e2f7ebe8270bd82a1529), [`8a73529`](https://github.com/mastra-ai/mastra/commit/8a73529ca01187f604b1f3019d0a725ac63ae55f)]:
2201
+ - @mastra/core@1.0.0-beta.16
2202
+
2203
+ ## 1.0.0-beta.9
2204
+
2205
+ ### Minor Changes
2206
+
2207
+ - Introduce StorageDomain base class for composite storage support ([#11249](https://github.com/mastra-ai/mastra/pull/11249))
2208
+
2209
+ Storage adapters now use a domain-based architecture where each domain (memory, workflows, scores, observability, agents) extends a `StorageDomain` base class with `init()` and `dangerouslyClearAll()` methods.
2210
+
2211
+ **Key changes:**
2212
+ - Add `StorageDomain` abstract base class that all domain storage classes extend
2213
+ - Add `InMemoryDB` class for shared state across in-memory domain implementations
2214
+ - All storage domains now implement `dangerouslyClearAll()` for test cleanup
2215
+ - Remove `operations` from public `StorageDomains` type (now internal to each adapter)
2216
+ - Add flexible client/config patterns - domains accept either an existing database client or config to create one internally
2217
+
2218
+ **Why this matters:**
2219
+
2220
+ This enables composite storage where you can use different database adapters per domain:
2221
+
2222
+ ```typescript
2223
+ import { Mastra } from '@mastra/core';
2224
+ import { PostgresStore } from '@mastra/pg';
2225
+ import { ClickhouseStore } from '@mastra/clickhouse';
2226
+
2227
+ // Use Postgres for most domains but Clickhouse for observability
2228
+ const mastra = new Mastra({
2229
+ storage: new PostgresStore({
2230
+ connectionString: 'postgres://...',
2231
+ }),
2232
+ // Future: override specific domains
2233
+ // observability: new ClickhouseStore({ ... }).getStore('observability'),
2234
+ });
2235
+ ```
2236
+
2237
+ **Standalone domain usage:**
2238
+
2239
+ Domains can now be used independently with flexible configuration:
2240
+
2241
+ ```typescript
2242
+ import { MemoryLibSQL } from '@mastra/libsql/memory';
2243
+
2244
+ // Option 1: Pass config to create client internally
2245
+ const memory = new MemoryLibSQL({
2246
+ url: 'file:./local.db',
2247
+ });
2248
+
2249
+ // Option 2: Pass existing client for shared connections
2250
+ import { createClient } from '@libsql/client';
2251
+ const client = createClient({ url: 'file:./local.db' });
2252
+ const memory = new MemoryLibSQL({ client });
2253
+ ```
2254
+
2255
+ **Breaking changes:**
2256
+ - `StorageDomains` type no longer includes `operations` - access via `getStore()` instead
2257
+ - Domain base classes now require implementing `dangerouslyClearAll()` method
2258
+
2259
+ - Refactor storage architecture to use domain-specific stores via `getStore()` pattern ([#11361](https://github.com/mastra-ai/mastra/pull/11361))
2260
+
2261
+ ### Summary
2262
+
2263
+ This release introduces a new storage architecture that replaces passthrough methods on `MastraStorage` with domain-specific storage interfaces accessed via `getStore()`. This change reduces code duplication across storage adapters and provides a cleaner, more modular API.
2264
+
2265
+ ### Migration Guide
2266
+
2267
+ All direct method calls on storage instances should be updated to use `getStore()`:
2268
+
2269
+ ```typescript
2270
+ // Before
2271
+ const thread = await storage.getThreadById({ threadId });
2272
+ await storage.persistWorkflowSnapshot({ workflowName, runId, snapshot });
2273
+ await storage.createSpan(span);
2274
+
2275
+ // After
2276
+ const memory = await storage.getStore('memory');
2277
+ const thread = await memory?.getThreadById({ threadId });
2278
+
2279
+ const workflows = await storage.getStore('workflows');
2280
+ await workflows?.persistWorkflowSnapshot({ workflowName, runId, snapshot });
2281
+
2282
+ const observability = await storage.getStore('observability');
2283
+ await observability?.createSpan(span);
2284
+ ```
2285
+
2286
+ ### Available Domains
2287
+ - **`memory`**: Thread and message operations (`getThreadById`, `saveThread`, `saveMessages`, etc.)
2288
+ - **`workflows`**: Workflow state persistence (`persistWorkflowSnapshot`, `loadWorkflowSnapshot`, `getWorkflowRunById`, etc.)
2289
+ - **`scores`**: Evaluation scores (`saveScore`, `listScoresByScorerId`, etc.)
2290
+ - **`observability`**: Tracing and spans (`createSpan`, `updateSpan`, `getTrace`, etc.)
2291
+ - **`agents`**: Stored agent configurations (`createAgent`, `getAgentById`, `listAgents`, etc.)
2292
+
2293
+ ### Breaking Changes
2294
+ - Passthrough methods have been removed from `MastraStorage` base class
2295
+ - All storage adapters now require accessing domains via `getStore()`
2296
+ - The `stores` property on storage instances is now the canonical way to access domain storage
2297
+
2298
+ ### Internal Changes
2299
+ - Each storage adapter now initializes domain-specific stores in its constructor
2300
+ - Domain stores share database connections and handle their own table initialization
2301
+
2302
+ - Unified observability schema with entity-based span identification ([#11132](https://github.com/mastra-ai/mastra/pull/11132))
2303
+
2304
+ ## What changed
2305
+
2306
+ Spans now use a unified identification model with `entityId`, `entityType`, and `entityName` instead of separate `agentId`, `toolId`, `workflowId` fields.
2307
+
2308
+ **Before:**
2309
+
2310
+ ```typescript
2311
+ // Old span structure
2312
+ span.agentId; // 'my-agent'
2313
+ span.toolId; // undefined
2314
+ span.workflowId; // undefined
2315
+ ```
2316
+
2317
+ **After:**
2318
+
2319
+ ```typescript
2320
+ // New span structure
2321
+ span.entityType; // EntityType.AGENT
2322
+ span.entityId; // 'my-agent'
2323
+ span.entityName; // 'My Agent'
2324
+ ```
2325
+
2326
+ ## New `listTraces()` API
2327
+
2328
+ Query traces with filtering, pagination, and sorting:
2329
+
2330
+ ```typescript
2331
+ const { spans, pagination } = await storage.listTraces({
2332
+ filters: {
2333
+ entityType: EntityType.AGENT,
2334
+ entityId: 'my-agent',
2335
+ userId: 'user-123',
2336
+ environment: 'production',
2337
+ status: TraceStatus.SUCCESS,
2338
+ startedAt: { start: new Date('2024-01-01'), end: new Date('2024-01-31') },
2339
+ },
2340
+ pagination: { page: 0, perPage: 50 },
2341
+ orderBy: { field: 'startedAt', direction: 'DESC' },
2342
+ });
2343
+ ```
2344
+
2345
+ **Available filters:** date ranges (`startedAt`, `endedAt`), entity (`entityType`, `entityId`, `entityName`), identity (`userId`, `organizationId`), correlation IDs (`runId`, `sessionId`, `threadId`), deployment (`environment`, `source`, `serviceName`), `tags`, `metadata`, and `status`.
2346
+
2347
+ ## New retrieval methods
2348
+ - `getSpan({ traceId, spanId })` - Get a single span
2349
+ - `getRootSpan({ traceId })` - Get the root span of a trace
2350
+ - `getTrace({ traceId })` - Get all spans for a trace
2351
+
2352
+ ## Backward compatibility
2353
+
2354
+ The legacy `getTraces()` method continues to work. When you pass `name: "agent run: my-agent"`, it automatically transforms to `entityId: "my-agent", entityType: AGENT`.
2355
+
2356
+ ## Migration
2357
+
2358
+ **Automatic:** SQL-based stores (PostgreSQL, LibSQL, MSSQL) automatically add new columns to existing `spans` tables on initialization. Existing data is preserved with new columns set to `NULL`.
2359
+
2360
+ **No action required:** Your existing code continues to work. Adopt the new fields and `listTraces()` API at your convenience.
2361
+
2362
+ ### Patch Changes
2363
+
2364
+ - Added pre-configured client support for all storage adapters. ([#11302](https://github.com/mastra-ai/mastra/pull/11302))
2365
+
2366
+ **What changed**
2367
+
2368
+ All storage adapters now accept pre-configured database clients in addition to connection credentials. This allows you to customize client settings (connection pools, timeouts, interceptors) before passing them to Mastra.
2369
+
2370
+ **Example**
2371
+
2372
+ ```typescript
2373
+ import { createClient } from '@clickhouse/client';
2374
+ import { ClickhouseStore } from '@mastra/clickhouse';
2375
+
2376
+ // Create and configure client with custom settings
2377
+ const client = createClient({
2378
+ url: 'http://localhost:8123',
2379
+ username: 'default',
2380
+ password: '',
2381
+ request_timeout: 60000,
2382
+ });
2383
+
2384
+ // Pass pre-configured client to store
2385
+ const store = new ClickhouseStore({
2386
+ id: 'my-store',
2387
+ client,
2388
+ });
2389
+ ```
2390
+
2391
+ **Additional improvements**
2392
+ - Added input validation for required connection parameters (URL, credentials) with clear error messages
2393
+
2394
+ - Updated dependencies [[`33a4d2e`](https://github.com/mastra-ai/mastra/commit/33a4d2e4ed8af51f69256232f00c34d6b6b51d48), [`4aaa844`](https://github.com/mastra-ai/mastra/commit/4aaa844a4f19d054490f43638a990cc57bda8d2f), [`4a1a6cb`](https://github.com/mastra-ai/mastra/commit/4a1a6cb3facad54b2bb6780b00ce91d6de1edc08), [`31d13d5`](https://github.com/mastra-ai/mastra/commit/31d13d5fdc2e2380e2e3ee3ec9fb29d2a00f265d), [`4c62166`](https://github.com/mastra-ai/mastra/commit/4c621669f4a29b1f443eca3ba70b814afa286266), [`7bcbf10`](https://github.com/mastra-ai/mastra/commit/7bcbf10133516e03df964b941f9a34e9e4ab4177), [`4353600`](https://github.com/mastra-ai/mastra/commit/43536005a65988a8eede236f69122e7f5a284ba2), [`6986fb0`](https://github.com/mastra-ai/mastra/commit/6986fb064f5db6ecc24aa655e1d26529087b43b3), [`053e979`](https://github.com/mastra-ai/mastra/commit/053e9793b28e970086b0507f7f3b76ea32c1e838), [`e26dc9c`](https://github.com/mastra-ai/mastra/commit/e26dc9c3ccfec54ae3dc3e2b2589f741f9ae60a6), [`55edf73`](https://github.com/mastra-ai/mastra/commit/55edf7302149d6c964fbb7908b43babfc2b52145), [`27c0009`](https://github.com/mastra-ai/mastra/commit/27c0009777a6073d7631b0eb7b481d94e165b5ca), [`dee388d`](https://github.com/mastra-ai/mastra/commit/dee388dde02f2e63c53385ae69252a47ab6825cc), [`3f3fc30`](https://github.com/mastra-ai/mastra/commit/3f3fc3096f24c4a26cffeecfe73085928f72aa63), [`d90ea65`](https://github.com/mastra-ai/mastra/commit/d90ea6536f7aa51c6545a4e9215b55858e98e16d), [`d171e55`](https://github.com/mastra-ai/mastra/commit/d171e559ead9f52ec728d424844c8f7b164c4510), [`10c2735`](https://github.com/mastra-ai/mastra/commit/10c27355edfdad1ee2b826b897df74125eb81fb8), [`1924cf0`](https://github.com/mastra-ai/mastra/commit/1924cf06816e5e4d4d5333065ec0f4bb02a97799), [`b339816`](https://github.com/mastra-ai/mastra/commit/b339816df0984d0243d944ac2655d6ba5f809cde)]:
2395
+ - @mastra/core@1.0.0-beta.15
2396
+
2397
+ ## 1.0.0-beta.8
2398
+
2399
+ ### Patch Changes
2400
+
2401
+ - Preserve error details when thrown from workflow steps ([#10992](https://github.com/mastra-ai/mastra/pull/10992))
2402
+
2403
+ Workflow errors now retain custom properties like `statusCode`, `responseHeaders`, and `cause` chains. This enables error-specific recovery logic in your applications.
2404
+
2405
+ **Before:**
2406
+
2407
+ ```typescript
2408
+ const result = await workflow.execute({ input });
2409
+ if (result.status === 'failed') {
2410
+ // Custom error properties were lost
2411
+ console.log(result.error); // "Step execution failed" (just a string)
2412
+ }
2413
+ ```
2414
+
2415
+ **After:**
2416
+
2417
+ ```typescript
2418
+ const result = await workflow.execute({ input });
2419
+ if (result.status === 'failed') {
2420
+ // Custom properties are preserved
2421
+ console.log(result.error.message); // "Step execution failed"
2422
+ console.log(result.error.statusCode); // 429
2423
+ console.log(result.error.cause?.name); // "RateLimitError"
2424
+ }
2425
+ ```
2426
+
2427
+ **Type change:** `WorkflowState.error` and `WorkflowRunState.error` types changed from `string | Error` to `SerializedError`.
2428
+
2429
+ Other changes:
2430
+ - Added `UpdateWorkflowStateOptions` type for workflow state updates
2431
+
2432
+ - fix: make getSqlType consistent across storage adapters ([#11112](https://github.com/mastra-ai/mastra/pull/11112))
2433
+ - PostgreSQL: use `getSqlType()` in `createTable` instead of `toUpperCase()`
2434
+ - LibSQL: use `getSqlType()` in `createTable`, return `JSONB` for jsonb type (matches SQLite 3.45+ support)
2435
+ - ClickHouse: use `getSqlType()` in `createTable` instead of `COLUMN_TYPES` constant, add missing types (uuid, float, boolean)
2436
+ - Remove unused `getSqlType()` and `getDefaultValue()` from `MastraStorage` base class (all stores use `StoreOperations` versions)
2437
+
2438
+ - Updated dependencies [[`d5ed981`](https://github.com/mastra-ai/mastra/commit/d5ed981c8701c1b8a27a5f35a9a2f7d9244e695f), [`9650cce`](https://github.com/mastra-ai/mastra/commit/9650cce52a1d917ff9114653398e2a0f5c3ba808), [`932d63d`](https://github.com/mastra-ai/mastra/commit/932d63dd51be9c8bf1e00e3671fe65606c6fb9cd), [`b760b73`](https://github.com/mastra-ai/mastra/commit/b760b731aca7c8a3f041f61d57a7f125ae9cb215), [`695a621`](https://github.com/mastra-ai/mastra/commit/695a621528bdabeb87f83c2277cf2bb084c7f2b4), [`2b459f4`](https://github.com/mastra-ai/mastra/commit/2b459f466fd91688eeb2a44801dc23f7f8a887ab), [`486352b`](https://github.com/mastra-ai/mastra/commit/486352b66c746602b68a95839f830de14c7fb8c0), [`09e4bae`](https://github.com/mastra-ai/mastra/commit/09e4bae18dd5357d2ae078a4a95a2af32168ab08), [`24b76d8`](https://github.com/mastra-ai/mastra/commit/24b76d8e17656269c8ed09a0c038adb9cc2ae95a), [`243a823`](https://github.com/mastra-ai/mastra/commit/243a8239c5906f5c94e4f78b54676793f7510ae3), [`486352b`](https://github.com/mastra-ai/mastra/commit/486352b66c746602b68a95839f830de14c7fb8c0), [`c61fac3`](https://github.com/mastra-ai/mastra/commit/c61fac3add96f0dcce0208c07415279e2537eb62), [`6f14f70`](https://github.com/mastra-ai/mastra/commit/6f14f706ccaaf81b69544b6c1b75ab66a41e5317), [`09e4bae`](https://github.com/mastra-ai/mastra/commit/09e4bae18dd5357d2ae078a4a95a2af32168ab08), [`4524734`](https://github.com/mastra-ai/mastra/commit/45247343e384717a7c8404296275c56201d6470f), [`2a53598`](https://github.com/mastra-ai/mastra/commit/2a53598c6d8cfeb904a7fc74e57e526d751c8fa6), [`c7cd3c7`](https://github.com/mastra-ai/mastra/commit/c7cd3c7a187d7aaf79e2ca139de328bf609a14b4), [`847c212`](https://github.com/mastra-ai/mastra/commit/847c212caba7df0d6f2fc756b494ac3c75c3720d), [`6f941c4`](https://github.com/mastra-ai/mastra/commit/6f941c438ca5f578619788acc7608fc2e23bd176)]:
2439
+ - @mastra/core@1.0.0-beta.12
2440
+
2441
+ ## 1.0.0-beta.7
2442
+
2443
+ ### Patch Changes
2444
+
2445
+ - Add delete workflow run API ([#10991](https://github.com/mastra-ai/mastra/pull/10991))
2446
+
2447
+ ```typescript
2448
+ await workflow.deleteWorkflowRunById(runId);
2449
+ ```
2450
+
2451
+ - Updated dependencies [[`edb07e4`](https://github.com/mastra-ai/mastra/commit/edb07e49283e0c28bd094a60e03439bf6ecf0221), [`b7e17d3`](https://github.com/mastra-ai/mastra/commit/b7e17d3f5390bb5a71efc112204413656fcdc18d), [`261473a`](https://github.com/mastra-ai/mastra/commit/261473ac637e633064a22076671e2e02b002214d), [`5d7000f`](https://github.com/mastra-ai/mastra/commit/5d7000f757cd65ea9dc5b05e662fd83dfd44e932), [`4f0331a`](https://github.com/mastra-ai/mastra/commit/4f0331a79bf6eb5ee598a5086e55de4b5a0ada03), [`8a000da`](https://github.com/mastra-ai/mastra/commit/8a000da0c09c679a2312f6b3aa05b2ca78ca7393)]:
2452
+ - @mastra/core@1.0.0-beta.10
2453
+
2454
+ ## 1.0.0-beta.6
2455
+
2456
+ ### Minor Changes
2457
+
2458
+ - Add stored agents support ([#10953](https://github.com/mastra-ai/mastra/pull/10953))
2459
+
2460
+ Agents can now be stored in the database and loaded at runtime. This lets you persist agent configurations and dynamically create executable Agent instances from storage.
2461
+
2462
+ ```typescript
2463
+ import { Mastra } from '@mastra/core';
2464
+ import { LibSQLStore } from '@mastra/libsql';
2465
+
2466
+ const mastra = new Mastra({
2467
+ storage: new LibSQLStore({ url: ':memory:' }),
2468
+ tools: { myTool },
2469
+ scorers: { myScorer },
2470
+ });
2471
+
2472
+ // Create agent in storage via API or directly
2473
+ await mastra.getStorage().createAgent({
2474
+ agent: {
2475
+ id: 'my-agent',
2476
+ name: 'My Agent',
2477
+ instructions: 'You are helpful',
2478
+ model: { provider: 'openai', name: 'gpt-4' },
2479
+ tools: { myTool: {} },
2480
+ scorers: { myScorer: { sampling: { type: 'ratio', rate: 0.5 } } },
2481
+ },
2482
+ });
2483
+
2484
+ // Load and use the agent
2485
+ const agent = await mastra.getStoredAgentById('my-agent');
2486
+ const response = await agent.generate({ messages: 'Hello!' });
2487
+
2488
+ // List all stored agents with pagination
2489
+ const { agents, total, hasMore } = await mastra.listStoredAgents({
2490
+ page: 0,
2491
+ perPage: 10,
2492
+ });
2493
+ ```
2494
+
2495
+ Also adds a memory registry to Mastra so stored agents can reference memory instances by key.
2496
+
2497
+ ### Patch Changes
2498
+
2499
+ - Updated dependencies [[`72df8ae`](https://github.com/mastra-ai/mastra/commit/72df8ae595584cdd7747d5c39ffaca45e4507227), [`9198899`](https://github.com/mastra-ai/mastra/commit/91988995c427b185c33714b7f3be955367911324), [`653e65a`](https://github.com/mastra-ai/mastra/commit/653e65ae1f9502c2958a32f47a5a2df11e612a92), [`c6fd6fe`](https://github.com/mastra-ai/mastra/commit/c6fd6fedd09e9cf8004b03a80925f5e94826ad7e), [`0bed332`](https://github.com/mastra-ai/mastra/commit/0bed332843f627202c6520eaf671771313cd20f3)]:
2500
+ - @mastra/core@1.0.0-beta.9
2501
+
2502
+ ## 1.0.0-beta.5
2503
+
2504
+ ### Patch Changes
2505
+
2506
+ - Fix saveScore not persisting ID correctly, breaking getScoreById retrieval ([#10915](https://github.com/mastra-ai/mastra/pull/10915))
2507
+
2508
+ **What Changed**
2509
+ - saveScore now correctly returns scores that can be retrieved with getScoreById
2510
+ - Validation errors now include contextual information (scorer, entity, trace details) for easier debugging
2511
+
2512
+ **Impact**
2513
+ Previously, calling getScoreById after saveScore would return null because the generated ID wasn't persisted to the database. This is now fixed across all store implementations, ensuring consistent behavior and data integrity.
2514
+
2515
+ - Updated dependencies [[`0d41fe2`](https://github.com/mastra-ai/mastra/commit/0d41fe245355dfc66d61a0d9c85d9400aac351ff), [`6b3ba91`](https://github.com/mastra-ai/mastra/commit/6b3ba91494cc10394df96782f349a4f7b1e152cc), [`7907fd1`](https://github.com/mastra-ai/mastra/commit/7907fd1c5059813b7b870b81ca71041dc807331b)]:
2516
+ - @mastra/core@1.0.0-beta.8
2517
+
2518
+ ## 1.0.0-beta.4
2519
+
2520
+ ### Minor Changes
2521
+
2522
+ - Add `disableInit` option to all storage adapters ([#10851](https://github.com/mastra-ai/mastra/pull/10851))
2523
+
2524
+ Adds a new `disableInit` config option to all storage providers that allows users to disable automatic table creation/migrations at runtime. This is useful for CI/CD pipelines where you want to run migrations during deployment with elevated credentials, then run the application with `disableInit: true` so it doesn't attempt schema changes at runtime.
2525
+
2526
+ ```typescript
2527
+ // CI/CD script - run migrations
2528
+ const storage = new PostgresStore({
2529
+ connectionString: DATABASE_URL,
2530
+ id: 'pg-storage',
2531
+ });
2532
+ await storage.init();
2533
+
2534
+ // Runtime - skip auto-init
2535
+ const storage = new PostgresStore({
2536
+ connectionString: DATABASE_URL,
2537
+ id: 'pg-storage',
2538
+ disableInit: true,
2539
+ });
2540
+ ```
2541
+
2542
+ ### Patch Changes
2543
+
2544
+ - Standardize error IDs across all storage and vector stores using centralized helper functions (`createStorageErrorId` and `createVectorErrorId`). This ensures consistent error ID patterns (`MASTRA_STORAGE_{STORE}_{OPERATION}_{STATUS}` and `MASTRA_VECTOR_{STORE}_{OPERATION}_{STATUS}`) across the codebase for better error tracking and debugging. ([#10913](https://github.com/mastra-ai/mastra/pull/10913))
2545
+
2546
+ - Updated dependencies [[`3076c67`](https://github.com/mastra-ai/mastra/commit/3076c6778b18988ae7d5c4c5c466366974b2d63f), [`85d7ee1`](https://github.com/mastra-ai/mastra/commit/85d7ee18ff4e14d625a8a30ec6656bb49804989b), [`c6c1092`](https://github.com/mastra-ai/mastra/commit/c6c1092f8fbf76109303f69e000e96fd1960c4ce), [`81dc110`](https://github.com/mastra-ai/mastra/commit/81dc11008d147cf5bdc8996ead1aa61dbdebb6fc), [`7aedb74`](https://github.com/mastra-ai/mastra/commit/7aedb74883adf66af38e270e4068fd42e7a37036), [`8f02d80`](https://github.com/mastra-ai/mastra/commit/8f02d800777397e4b45d7f1ad041988a8b0c6630), [`d7aad50`](https://github.com/mastra-ai/mastra/commit/d7aad501ce61646b76b4b511e558ac4eea9884d0), [`ce0a73a`](https://github.com/mastra-ai/mastra/commit/ce0a73abeaa75b10ca38f9e40a255a645d50ebfb), [`a02e542`](https://github.com/mastra-ai/mastra/commit/a02e542d23179bad250b044b17ff023caa61739f), [`a372c64`](https://github.com/mastra-ai/mastra/commit/a372c640ad1fd12e8f0613cebdc682fc156b4d95), [`8846867`](https://github.com/mastra-ai/mastra/commit/8846867ffa9a3746767618e314bebac08eb77d87), [`42a42cf`](https://github.com/mastra-ai/mastra/commit/42a42cf3132b9786feecbb8c13c583dce5b0e198), [`ae08bf0`](https://github.com/mastra-ai/mastra/commit/ae08bf0ebc6a4e4da992b711c4a389c32ba84cf4), [`21735a7`](https://github.com/mastra-ai/mastra/commit/21735a7ef306963554a69a89b44f06c3bcd85141), [`1d877b8`](https://github.com/mastra-ai/mastra/commit/1d877b8d7b536a251c1a7a18db7ddcf4f68d6f8b)]:
2547
+ - @mastra/core@1.0.0-beta.7
2548
+
2549
+ ## 1.0.0-beta.3
2550
+
2551
+ ### Patch Changes
2552
+
2553
+ - feat(storage): support querying messages from multiple threads ([#10663](https://github.com/mastra-ai/mastra/pull/10663))
2554
+ - Fixed TypeScript errors where `threadId: string | string[]` was being passed to places expecting `Scalar` type
2555
+ - Added proper multi-thread support for `listMessages` across all adapters when `threadId` is an array
2556
+ - Updated `_getIncludedMessages` to look up message threadId by ID (since message IDs are globally unique)
2557
+ - **upstash**: Added `msg-idx:{messageId}` index for O(1) message lookups (backwards compatible with fallback to scan for old messages, with automatic backfill)
2558
+
2559
+ - Unify transformScoreRow functions across storage adapters ([#10648](https://github.com/mastra-ai/mastra/pull/10648))
2560
+
2561
+ Added a unified `transformScoreRow` function in `@mastra/core/storage` that provides schema-driven row transformation for score data. This eliminates code duplication across 10 storage adapters while maintaining store-specific behavior through configurable options:
2562
+ - `preferredTimestampFields`: Preferred source fields for timestamps (PostgreSQL, Cloudflare D1)
2563
+ - `convertTimestamps`: Convert timestamp strings to Date objects (MSSQL, MongoDB, ClickHouse)
2564
+ - `nullValuePattern`: Skip values matching pattern (ClickHouse's `'_null_'`)
2565
+ - `fieldMappings`: Map source column names to schema fields (LibSQL's `additionalLLMContext`)
2566
+
2567
+ Each store adapter now uses the unified function with appropriate options, reducing ~200 lines of duplicate transformation logic while ensuring consistent behavior across all storage backends.
2568
+
2569
+ - Updated dependencies [[`ac0d2f4`](https://github.com/mastra-ai/mastra/commit/ac0d2f4ff8831f72c1c66c2be809706d17f65789), [`1a0d3fc`](https://github.com/mastra-ai/mastra/commit/1a0d3fc811482c9c376cdf79ee615c23bae9b2d6), [`85a628b`](https://github.com/mastra-ai/mastra/commit/85a628b1224a8f64cd82ea7f033774bf22df7a7e), [`c237233`](https://github.com/mastra-ai/mastra/commit/c23723399ccedf7f5744b3f40997b79246bfbe64), [`15f9e21`](https://github.com/mastra-ai/mastra/commit/15f9e216177201ea6e3f6d0bfb063fcc0953444f), [`ff94dea`](https://github.com/mastra-ai/mastra/commit/ff94dea935f4e34545c63bcb6c29804732698809), [`5b2ff46`](https://github.com/mastra-ai/mastra/commit/5b2ff4651df70c146523a7fca773f8eb0a2272f8), [`db41688`](https://github.com/mastra-ai/mastra/commit/db4168806d007417e2e60b4f68656dca4e5f40c9), [`5ca599d`](https://github.com/mastra-ai/mastra/commit/5ca599d0bb59a1595f19f58473fcd67cc71cef58), [`bff1145`](https://github.com/mastra-ai/mastra/commit/bff114556b3cbadad9b2768488708f8ad0e91475), [`5c8ca24`](https://github.com/mastra-ai/mastra/commit/5c8ca247094e0cc2cdbd7137822fb47241f86e77), [`e191844`](https://github.com/mastra-ai/mastra/commit/e1918444ca3f80e82feef1dad506cd4ec6e2875f), [`22553f1`](https://github.com/mastra-ai/mastra/commit/22553f11c63ee5e966a9c034a349822249584691), [`7237163`](https://github.com/mastra-ai/mastra/commit/72371635dbf96a87df4b073cc48fc655afbdce3d), [`2500740`](https://github.com/mastra-ai/mastra/commit/2500740ea23da067d6e50ec71c625ab3ce275e64), [`873ecbb`](https://github.com/mastra-ai/mastra/commit/873ecbb517586aa17d2f1e99283755b3ebb2863f), [`4f9bbe5`](https://github.com/mastra-ai/mastra/commit/4f9bbe5968f42c86f4930b8193de3c3c17e5bd36), [`02e51fe`](https://github.com/mastra-ai/mastra/commit/02e51feddb3d4155cfbcc42624fd0d0970d032c0), [`8f3fa3a`](https://github.com/mastra-ai/mastra/commit/8f3fa3a652bb77da092f913ec51ae46e3a7e27dc), [`cd29ad2`](https://github.com/mastra-ai/mastra/commit/cd29ad23a255534e8191f249593849ed29160886), [`bdf4d8c`](https://github.com/mastra-ai/mastra/commit/bdf4d8cdc656d8a2c21d81834bfa3bfa70f56c16), [`854e3da`](https://github.com/mastra-ai/mastra/commit/854e3dad5daac17a91a20986399d3a51f54bf68b), [`ce18d38`](https://github.com/mastra-ai/mastra/commit/ce18d38678c65870350d123955014a8432075fd9), [`cccf9c8`](https://github.com/mastra-ai/mastra/commit/cccf9c8b2d2dfc1a5e63919395b83d78c89682a0), [`61a5705`](https://github.com/mastra-ai/mastra/commit/61a570551278b6743e64243b3ce7d73de915ca8a), [`db70a48`](https://github.com/mastra-ai/mastra/commit/db70a48aeeeeb8e5f92007e8ede52c364ce15287), [`f0fdc14`](https://github.com/mastra-ai/mastra/commit/f0fdc14ee233d619266b3d2bbdeea7d25cfc6d13), [`db18bc9`](https://github.com/mastra-ai/mastra/commit/db18bc9c3825e2c1a0ad9a183cc9935f6691bfa1), [`9b37b56`](https://github.com/mastra-ai/mastra/commit/9b37b565e1f2a76c24f728945cc740c2b09be9da), [`41a23c3`](https://github.com/mastra-ai/mastra/commit/41a23c32f9877d71810f37e24930515df2ff7a0f), [`5d171ad`](https://github.com/mastra-ai/mastra/commit/5d171ad9ef340387276b77c2bb3e83e83332d729), [`f03ae60`](https://github.com/mastra-ai/mastra/commit/f03ae60500fe350c9d828621006cdafe1975fdd8), [`d1e74a0`](https://github.com/mastra-ai/mastra/commit/d1e74a0a293866dece31022047f5dbab65a304d0), [`39e7869`](https://github.com/mastra-ai/mastra/commit/39e7869bc7d0ee391077ce291474d8a84eedccff), [`5761926`](https://github.com/mastra-ai/mastra/commit/57619260c4a2cdd598763abbacd90de594c6bc76), [`c900fdd`](https://github.com/mastra-ai/mastra/commit/c900fdd504c41348efdffb205cfe80d48c38fa33), [`604a79f`](https://github.com/mastra-ai/mastra/commit/604a79fecf276e26a54a3fe01bb94e65315d2e0e), [`887f0b4`](https://github.com/mastra-ai/mastra/commit/887f0b4746cdbd7cb7d6b17ac9f82aeb58037ea5), [`2562143`](https://github.com/mastra-ai/mastra/commit/256214336b4faa78646c9c1776612393790d8784), [`ef11a61`](https://github.com/mastra-ai/mastra/commit/ef11a61920fa0ed08a5b7ceedd192875af119749)]:
2570
+ - @mastra/core@1.0.0-beta.6
2571
+
2572
+ ## 1.0.0-beta.2
2573
+
2574
+ ### Patch Changes
2575
+
2576
+ - Add new deleteVectors, updateVector by filter ([#10408](https://github.com/mastra-ai/mastra/pull/10408))
2577
+
2578
+ - Updated dependencies [[`21a15de`](https://github.com/mastra-ai/mastra/commit/21a15de369fe82aac26bb642ed7be73505475e8b), [`feb7ee4`](https://github.com/mastra-ai/mastra/commit/feb7ee4d09a75edb46c6669a3beaceec78811747), [`b0e2ea5`](https://github.com/mastra-ai/mastra/commit/b0e2ea5b52c40fae438b9e2f7baee6f0f89c5442), [`c456e01`](https://github.com/mastra-ai/mastra/commit/c456e0149e3c176afcefdbd9bb1d2c5917723725), [`ab035c2`](https://github.com/mastra-ai/mastra/commit/ab035c2ef6d8cc7bb25f06f1a38508bd9e6f126b), [`1a46a56`](https://github.com/mastra-ai/mastra/commit/1a46a566f45a3fcbadc1cf36bf86d351f264bfa3), [`3cf540b`](https://github.com/mastra-ai/mastra/commit/3cf540b9fbfea8f4fc8d3a2319a4e6c0b0cbfd52), [`1c6ce51`](https://github.com/mastra-ai/mastra/commit/1c6ce51f875915ab57fd36873623013699a2a65d), [`898a972`](https://github.com/mastra-ai/mastra/commit/898a9727d286c2510d6b702dfd367e6aaf5c6b0f), [`a97003a`](https://github.com/mastra-ai/mastra/commit/a97003aa1cf2f4022a41912324a1e77263b326b8), [`ccc141e`](https://github.com/mastra-ai/mastra/commit/ccc141ed27da0abc3a3fc28e9e5128152e8e37f4), [`fe3b897`](https://github.com/mastra-ai/mastra/commit/fe3b897c2ccbcd2b10e81b099438c7337feddf89), [`00123ba`](https://github.com/mastra-ai/mastra/commit/00123ba96dc9e5cd0b110420ebdba56d8f237b25), [`29c4309`](https://github.com/mastra-ai/mastra/commit/29c4309f818b24304c041bcb4a8f19b5f13f6b62), [`16785ce`](https://github.com/mastra-ai/mastra/commit/16785ced928f6f22638f4488cf8a125d99211799), [`de8239b`](https://github.com/mastra-ai/mastra/commit/de8239bdcb1d8c0cfa06da21f1569912a66bbc8a), [`b5e6cd7`](https://github.com/mastra-ai/mastra/commit/b5e6cd77fc8c8e64e0494c1d06cee3d84e795d1e), [`3759cb0`](https://github.com/mastra-ai/mastra/commit/3759cb064935b5f74c65ac2f52a1145f7352899d), [`651e772`](https://github.com/mastra-ai/mastra/commit/651e772eb1475fb13e126d3fcc01751297a88214), [`b61b93f`](https://github.com/mastra-ai/mastra/commit/b61b93f9e058b11dd2eec169853175d31dbdd567), [`bae33d9`](https://github.com/mastra-ai/mastra/commit/bae33d91a63fbb64d1e80519e1fc1acaed1e9013), [`c0b731f`](https://github.com/mastra-ai/mastra/commit/c0b731fb27d712dc8582e846df5c0332a6a0c5ba), [`43ca8f2`](https://github.com/mastra-ai/mastra/commit/43ca8f2c7334851cc7b4d3d2f037d8784bfbdd5f), [`2ca67cc`](https://github.com/mastra-ai/mastra/commit/2ca67cc3bb1f6a617353fdcab197d9efebe60d6f), [`9e67002`](https://github.com/mastra-ai/mastra/commit/9e67002b52c9be19936c420a489dbee9c5fd6a78), [`35edc49`](https://github.com/mastra-ai/mastra/commit/35edc49ac0556db609189641d6341e76771b81fc)]:
2579
+ - @mastra/core@1.0.0-beta.5
2580
+
2581
+ ## 1.0.0-beta.1
2582
+
2583
+ ### Patch Changes
2584
+
2585
+ - Add restart method to workflow run that allows restarting an active workflow run ([#9750](https://github.com/mastra-ai/mastra/pull/9750))
2586
+ Add status filter to `listWorkflowRuns`
2587
+ Add automatic restart to restart active workflow runs when server starts
2588
+ - Updated dependencies [[`2319326`](https://github.com/mastra-ai/mastra/commit/2319326f8c64e503a09bbcf14be2dd65405445e0), [`d629361`](https://github.com/mastra-ai/mastra/commit/d629361a60f6565b5bfb11976fdaf7308af858e2), [`08c31c1`](https://github.com/mastra-ai/mastra/commit/08c31c188ebccd598acaf55e888b6397d01f7eae), [`fd3d338`](https://github.com/mastra-ai/mastra/commit/fd3d338a2c362174ed5b383f1f011ad9fb0302aa), [`c30400a`](https://github.com/mastra-ai/mastra/commit/c30400a49b994b1b97256fe785eb6c906fc2b232), [`69e0a87`](https://github.com/mastra-ai/mastra/commit/69e0a878896a2da9494945d86e056a5f8f05b851), [`01f8878`](https://github.com/mastra-ai/mastra/commit/01f88783de25e4de048c1c8aace43e26373c6ea5), [`4c77209`](https://github.com/mastra-ai/mastra/commit/4c77209e6c11678808b365d545845918c40045c8), [`d827d08`](https://github.com/mastra-ai/mastra/commit/d827d0808ffe1f3553a84e975806cc989b9735dd), [`23c10a1`](https://github.com/mastra-ai/mastra/commit/23c10a1efdd9a693c405511ab2dc8a1236603162), [`676ccc7`](https://github.com/mastra-ai/mastra/commit/676ccc7fe92468d2d45d39c31a87825c89fd1ea0), [`c10398d`](https://github.com/mastra-ai/mastra/commit/c10398d5b88f1d4af556f4267ff06f1d11e89179), [`00c2387`](https://github.com/mastra-ai/mastra/commit/00c2387f5f04a365316f851e58666ac43f8c4edf), [`ad6250d`](https://github.com/mastra-ai/mastra/commit/ad6250dbdaad927e29f74a27b83f6c468b50a705), [`3a73998`](https://github.com/mastra-ai/mastra/commit/3a73998fa4ebeb7f3dc9301afe78095fc63e7999), [`e16d553`](https://github.com/mastra-ai/mastra/commit/e16d55338403c7553531cc568125c63d53653dff), [`4d59f58`](https://github.com/mastra-ai/mastra/commit/4d59f58de2d90d6e2810a19d4518e38ddddb9038), [`e1bb9c9`](https://github.com/mastra-ai/mastra/commit/e1bb9c94b4eb68b019ae275981be3feb769b5365), [`351a11f`](https://github.com/mastra-ai/mastra/commit/351a11fcaf2ed1008977fa9b9a489fc422e51cd4)]:
2589
+ - @mastra/core@1.0.0-beta.3
2590
+
2591
+ ## 1.0.0-beta.0
2592
+
2593
+ ### Major Changes
2594
+
2595
+ - Moving scorers under the eval domain, api method consistency, prebuilt evals, scorers require ids. ([#9589](https://github.com/mastra-ai/mastra/pull/9589))
2596
+
2597
+ - 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))
2598
+
2599
+ Primitives that are added to other primitives are also automatically added to the Mastra instance
2600
+
2601
+ - 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))
2602
+
2603
+ - **BREAKING:** Remove `getMessagesPaginated()` and add `perPage: false` support ([#9670](https://github.com/mastra-ai/mastra/pull/9670))
2604
+
2605
+ Removes deprecated `getMessagesPaginated()` method. The `listMessages()` API and score handlers now support `perPage: false` to fetch all records without pagination limits.
2606
+
2607
+ **Storage changes:**
2608
+ - `StoragePagination.perPage` type changed from `number` to `number | false`
2609
+ - All storage implementations support `perPage: false`:
2610
+ - Memory: `listMessages()`
2611
+ - Scores: `listScoresBySpan()`, `listScoresByRunId()`, `listScoresByExecutionId()`
2612
+ - HTTP query parser accepts `"false"` string (e.g., `?perPage=false`)
2613
+
2614
+ **Memory changes:**
2615
+ - `memory.query()` parameter type changed from `StorageGetMessagesArg` to `StorageListMessagesInput`
2616
+ - Uses flat parameters (`page`, `perPage`, `include`, `filter`, `vectorSearchString`) instead of `selectBy` object
2617
+
2618
+ **Stricter validation:**
2619
+ - `listMessages()` requires non-empty, non-whitespace `threadId` (throws error instead of returning empty results)
2620
+
2621
+ **Migration:**
2622
+
2623
+ ```typescript
2624
+ // Storage/Memory: Replace getMessagesPaginated with listMessages
2625
+ - storage.getMessagesPaginated({ threadId, selectBy: { pagination: { page: 0, perPage: 20 } } })
2626
+ + storage.listMessages({ threadId, page: 0, perPage: 20 })
2627
+ + storage.listMessages({ threadId, page: 0, perPage: false }) // Fetch all
2628
+
2629
+ // Memory: Replace selectBy with flat parameters
2630
+ - memory.query({ threadId, selectBy: { last: 20, include: [...] } })
2631
+ + memory.query({ threadId, perPage: 20, include: [...] })
2632
+
2633
+ // Client SDK
2634
+ - thread.getMessagesPaginated({ selectBy: { pagination: { page: 0 } } })
2635
+ + thread.listMessages({ page: 0, perPage: 20 })
2636
+ ```
2637
+
2638
+ - # Major Changes ([#9695](https://github.com/mastra-ai/mastra/pull/9695))
2639
+
2640
+ ## Storage Layer
2641
+
2642
+ ### BREAKING: Removed `storage.getMessages()`
2643
+
2644
+ The `getMessages()` method has been removed from all storage implementations. Use `listMessages()` instead, which provides pagination support.
2645
+
2646
+ **Migration:**
2647
+
2648
+ ```typescript
2649
+ // Before
2650
+ const messages = await storage.getMessages({ threadId: 'thread-1' });
2651
+
2652
+ // After
2653
+ const result = await storage.listMessages({
2654
+ threadId: 'thread-1',
2655
+ page: 0,
2656
+ perPage: 50,
2657
+ });
2658
+ const messages = result.messages; // Access messages array
2659
+ console.log(result.total); // Total count
2660
+ console.log(result.hasMore); // Whether more pages exist
2661
+ ```
2662
+
2663
+ ### Message ordering default
2664
+
2665
+ `listMessages()` defaults to ASC (oldest first) ordering by `createdAt`, matching the previous `getMessages()` behavior.
2666
+
2667
+ **To use DESC ordering (newest first):**
2668
+
2669
+ ```typescript
2670
+ const result = await storage.listMessages({
2671
+ threadId: 'thread-1',
2672
+ orderBy: { field: 'createdAt', direction: 'DESC' },
2673
+ });
2674
+ ```
2675
+
2676
+ ## Client SDK
2677
+
2678
+ ### BREAKING: Renamed `client.getThreadMessages()` → `client.listThreadMessages()`
2679
+
2680
+ **Migration:**
2681
+
2682
+ ```typescript
2683
+ // Before
2684
+ const response = await client.getThreadMessages(threadId, { agentId });
2685
+
2686
+ // After
2687
+ const response = await client.listThreadMessages(threadId, { agentId });
2688
+ ```
2689
+
2690
+ The response format remains the same.
2691
+
2692
+ ## Type Changes
2693
+
2694
+ ### BREAKING: Removed `StorageGetMessagesArg` type
2695
+
2696
+ Use `StorageListMessagesInput` instead:
2697
+
2698
+ ```typescript
2699
+ // Before
2700
+ import type { StorageGetMessagesArg } from '@mastra/core';
2701
+
2702
+ // After
2703
+ import type { StorageListMessagesInput } from '@mastra/core';
2704
+ ```
2705
+
2706
+ - Bump minimum required Node.js version to 22.13.0 ([#9706](https://github.com/mastra-ai/mastra/pull/9706))
2707
+
2708
+ - Add new list methods to storage API: `listMessages`, `listMessagesById`, `listThreadsByResourceId`, and `listWorkflowRuns`. Most methods are currently wrappers around existing methods. Full implementations will be added when migrating away from legacy methods. ([#9489](https://github.com/mastra-ai/mastra/pull/9489))
2709
+
2710
+ - Rename RuntimeContext to RequestContext ([#9511](https://github.com/mastra-ai/mastra/pull/9511))
2711
+
2712
+ - Implement listMessages API for replacing previous methods ([#9531](https://github.com/mastra-ai/mastra/pull/9531))
2713
+
2714
+ - 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))
2715
+
2716
+ - Remove `getMessagesById` method from storage interfaces in favor of `listMessagesById`. The new method only returns V2-format messages and removes the format parameter, simplifying the API surface. Users should migrate from `getMessagesById({ messageIds, format })` to `listMessagesById({ messageIds })`. ([#9534](https://github.com/mastra-ai/mastra/pull/9534))
2717
+
2718
+ - Renamed a bunch of observability/tracing-related things to drop the AI prefix. ([#9744](https://github.com/mastra-ai/mastra/pull/9744))
2719
+
2720
+ - **BREAKING CHANGE**: Pagination APIs now use `page`/`perPage` instead of `offset`/`limit` ([#9592](https://github.com/mastra-ai/mastra/pull/9592))
2721
+
2722
+ 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.
2723
+
2724
+ **Affected APIs:**
2725
+ - `Memory.listThreadsByResourceId()`
2726
+ - `Memory.listMessages()`
2727
+ - `Storage.listWorkflowRuns()`
2728
+
2729
+ **Migration:**
2730
+
2731
+ ```typescript
2732
+ // Before
2733
+ await memory.listThreadsByResourceId({
2734
+ resourceId: 'user-123',
2735
+ offset: 20,
2736
+ limit: 10,
2737
+ });
2738
+
2739
+ // After
2740
+ await memory.listThreadsByResourceId({
2741
+ resourceId: 'user-123',
2742
+ page: 2, // page = Math.floor(offset / limit)
2743
+ perPage: 10,
2744
+ });
2745
+
2746
+ // Before
2747
+ await memory.listMessages({
2748
+ threadId: 'thread-456',
2749
+ offset: 20,
2750
+ limit: 10,
2751
+ });
2752
+
2753
+ // After
2754
+ await memory.listMessages({
2755
+ threadId: 'thread-456',
2756
+ page: 2,
2757
+ perPage: 10,
2758
+ });
2759
+
2760
+ // Before
2761
+ await storage.listWorkflowRuns({
2762
+ workflowName: 'my-workflow',
2763
+ offset: 20,
2764
+ limit: 10,
2765
+ });
2766
+
2767
+ // After
2768
+ await storage.listWorkflowRuns({
2769
+ workflowName: 'my-workflow',
2770
+ page: 2,
2771
+ perPage: 10,
2772
+ });
2773
+ ```
2774
+
2775
+ **Additional improvements:**
2776
+ - Added validation for negative `page` values in all storage implementations
2777
+ - Improved `perPage` validation to handle edge cases (negative values, `0`, `false`)
2778
+ - Added reusable query parser utilities for consistent validation in handlers
2779
+
2780
+ - ```([#9709](https://github.com/mastra-ai/mastra/pull/9709))
2781
+ import { Mastra } from '@mastra/core';
2782
+ import { Observability } from '@mastra/observability'; // Explicit import
2783
+
2784
+ const mastra = new Mastra({
2785
+ ...other_config,
2786
+ observability: new Observability({
2787
+ default: { enabled: true }
2788
+ }) // Instance
2789
+ });
2790
+ ```
2791
+
2792
+ Instead of:
2793
+
2794
+ ```
2795
+ import { Mastra } from '@mastra/core';
2796
+ import '@mastra/observability/init'; // Explicit import
2797
+
2798
+ const mastra = new Mastra({
2799
+ ...other_config,
2800
+ observability: {
2801
+ default: { enabled: true }
2802
+ }
2803
+ });
2804
+ ```
2805
+
2806
+ Also renamed a bunch of:
2807
+ - `Tracing` things to `Observability` things.
2808
+ - `AI-` things to just things.
2809
+
2810
+ - Removed old tracing code based on OpenTelemetry ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
2811
+
2812
+ - Mark as stable ([`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc))
2813
+
2814
+ - Renamed `MastraMessageV2` to `MastraDBMessage` ([#9255](https://github.com/mastra-ai/mastra/pull/9255))
2815
+ 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
2816
+
2817
+ - Remove legacy evals from Mastra ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
2818
+
2819
+ ### Minor Changes
2820
+
2821
+ - Update peer dependencies to match core package version bump (1.0.0) ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
2822
+
2823
+ ### Patch Changes
2824
+
2825
+ - 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)]:
2826
+ - @mastra/core@1.0.0-beta.0
2827
+
2828
+ ## 0.16.0
4
2829
 
5
2830
  ### Minor Changes
6
2831
 
@@ -10,8 +2835,19 @@
10
2835
 
11
2836
  - Support for custom resume labels mapping to step to be resumed ([#8941](https://github.com/mastra-ai/mastra/pull/8941))
12
2837
 
13
- - Updated dependencies [[`c67ca32`](https://github.com/mastra-ai/mastra/commit/c67ca32e3c2cf69bfc146580770c720220ca44ac), [`efb5ed9`](https://github.com/mastra-ai/mastra/commit/efb5ed946ae7f410bc68c9430beb4b010afd25ec), [`dbc9e12`](https://github.com/mastra-ai/mastra/commit/dbc9e1216ba575ba59ead4afb727a01215f7de4f), [`99e41b9`](https://github.com/mastra-ai/mastra/commit/99e41b94957cdd25137d3ac12e94e8b21aa01b68), [`c28833c`](https://github.com/mastra-ai/mastra/commit/c28833c5b6d8e10eeffd7f7d39129d53b8bca240), [`f053e89`](https://github.com/mastra-ai/mastra/commit/f053e89160dbd0bd3333fc3492f68231b5c7c349), [`182f045`](https://github.com/mastra-ai/mastra/commit/182f0458f25bd70aa774e64fd923c8a483eddbf1), [`9a1a485`](https://github.com/mastra-ai/mastra/commit/9a1a4859b855e37239f652bf14b1ecd1029b8c4e), [`9257233`](https://github.com/mastra-ai/mastra/commit/9257233c4ffce09b2bedc2a9adbd70d7a83fa8e2), [`b2365f0`](https://github.com/mastra-ai/mastra/commit/b2365f038dd4c5f06400428b224af963f399ad50), [`0f1a4c9`](https://github.com/mastra-ai/mastra/commit/0f1a4c984fb4b104b2f0b63ba18c9fa77f567700), [`e473bfe`](https://github.com/mastra-ai/mastra/commit/e473bfe416c0b8e876973c2b6a6f13c394b7a93f), [`2db6160`](https://github.com/mastra-ai/mastra/commit/2db6160e2022ff8827c15d30157e684683b934b5), [`8aeea37`](https://github.com/mastra-ai/mastra/commit/8aeea37efdde347c635a67fed56794943b7f74ec), [`02fe153`](https://github.com/mastra-ai/mastra/commit/02fe15351d6021d214da48ec982a0e9e4150bcee), [`74567b3`](https://github.com/mastra-ai/mastra/commit/74567b3d237ae3915cd0bca3cf55fa0a64e4e4a4), [`15a1733`](https://github.com/mastra-ai/mastra/commit/15a1733074cee8bd37370e1af34cd818e89fa7ac), [`fc2a774`](https://github.com/mastra-ai/mastra/commit/fc2a77468981aaddc3e77f83f0c4ad4a4af140da), [`4e08933`](https://github.com/mastra-ai/mastra/commit/4e08933625464dfde178347af5b6278fcf34188e)]:
14
- - @mastra/core@0.0.0-error-handler-fix-20251020202607
2838
+ - Update peerdeps to 0.23.0-0 ([#9043](https://github.com/mastra-ai/mastra/pull/9043))
2839
+
2840
+ - Updated dependencies [[`c67ca32`](https://github.com/mastra-ai/mastra/commit/c67ca32e3c2cf69bfc146580770c720220ca44ac), [`efb5ed9`](https://github.com/mastra-ai/mastra/commit/efb5ed946ae7f410bc68c9430beb4b010afd25ec), [`dbc9e12`](https://github.com/mastra-ai/mastra/commit/dbc9e1216ba575ba59ead4afb727a01215f7de4f), [`99e41b9`](https://github.com/mastra-ai/mastra/commit/99e41b94957cdd25137d3ac12e94e8b21aa01b68), [`c28833c`](https://github.com/mastra-ai/mastra/commit/c28833c5b6d8e10eeffd7f7d39129d53b8bca240), [`8ea07b4`](https://github.com/mastra-ai/mastra/commit/8ea07b4bdc73e4218437dbb6dcb0f4b23e745a44), [`ba201b8`](https://github.com/mastra-ai/mastra/commit/ba201b8f8feac4c72350f2dbd52c13c7297ba7b0), [`f053e89`](https://github.com/mastra-ai/mastra/commit/f053e89160dbd0bd3333fc3492f68231b5c7c349), [`4fc4136`](https://github.com/mastra-ai/mastra/commit/4fc413652866a8d2240694fddb2562e9edbb70df), [`b78e04d`](https://github.com/mastra-ai/mastra/commit/b78e04d935a16ecb1e59c5c96e564903527edddd), [`d10baf5`](https://github.com/mastra-ai/mastra/commit/d10baf5a3c924f2a6654e23a3e318ed03f189b76), [`038c55a`](https://github.com/mastra-ai/mastra/commit/038c55a7090fc1b1513a966386d3072617f836ac), [`182f045`](https://github.com/mastra-ai/mastra/commit/182f0458f25bd70aa774e64fd923c8a483eddbf1), [`9a1a485`](https://github.com/mastra-ai/mastra/commit/9a1a4859b855e37239f652bf14b1ecd1029b8c4e), [`9257233`](https://github.com/mastra-ai/mastra/commit/9257233c4ffce09b2bedc2a9adbd70d7a83fa8e2), [`7620d2b`](https://github.com/mastra-ai/mastra/commit/7620d2bddeb4fae4c3c0a0b4e672969795fca11a), [`b2365f0`](https://github.com/mastra-ai/mastra/commit/b2365f038dd4c5f06400428b224af963f399ad50), [`0f1a4c9`](https://github.com/mastra-ai/mastra/commit/0f1a4c984fb4b104b2f0b63ba18c9fa77f567700), [`9029ba3`](https://github.com/mastra-ai/mastra/commit/9029ba34459c8859fed4c6b73efd8e2d0021e7ba), [`426cc56`](https://github.com/mastra-ai/mastra/commit/426cc561c85ae76a112ded2385532a91f9f9f074), [`00931fb`](https://github.com/mastra-ai/mastra/commit/00931fb1a21aa42c4fbc20c2c40dd62466b8fc8f), [`e473bfe`](https://github.com/mastra-ai/mastra/commit/e473bfe416c0b8e876973c2b6a6f13c394b7a93f), [`b78e04d`](https://github.com/mastra-ai/mastra/commit/b78e04d935a16ecb1e59c5c96e564903527edddd), [`2db6160`](https://github.com/mastra-ai/mastra/commit/2db6160e2022ff8827c15d30157e684683b934b5), [`8aeea37`](https://github.com/mastra-ai/mastra/commit/8aeea37efdde347c635a67fed56794943b7f74ec), [`02fe153`](https://github.com/mastra-ai/mastra/commit/02fe15351d6021d214da48ec982a0e9e4150bcee), [`648e2ca`](https://github.com/mastra-ai/mastra/commit/648e2ca42da54838c6ccbdaadc6fadd808fa6b86), [`74567b3`](https://github.com/mastra-ai/mastra/commit/74567b3d237ae3915cd0bca3cf55fa0a64e4e4a4), [`b65c5e0`](https://github.com/mastra-ai/mastra/commit/b65c5e0fe6f3c390a9a8bbcf69304d972c3a4afb), [`15a1733`](https://github.com/mastra-ai/mastra/commit/15a1733074cee8bd37370e1af34cd818e89fa7ac), [`fc2a774`](https://github.com/mastra-ai/mastra/commit/fc2a77468981aaddc3e77f83f0c4ad4a4af140da), [`4e08933`](https://github.com/mastra-ai/mastra/commit/4e08933625464dfde178347af5b6278fcf34188e)]:
2841
+ - @mastra/core@0.22.0
2842
+
2843
+ ## 0.16.0-alpha.1
2844
+
2845
+ ### Patch Changes
2846
+
2847
+ - Update peerdeps to 0.23.0-0 ([#9043](https://github.com/mastra-ai/mastra/pull/9043))
2848
+
2849
+ - Updated dependencies [[`efb5ed9`](https://github.com/mastra-ai/mastra/commit/efb5ed946ae7f410bc68c9430beb4b010afd25ec), [`8ea07b4`](https://github.com/mastra-ai/mastra/commit/8ea07b4bdc73e4218437dbb6dcb0f4b23e745a44), [`ba201b8`](https://github.com/mastra-ai/mastra/commit/ba201b8f8feac4c72350f2dbd52c13c7297ba7b0), [`4fc4136`](https://github.com/mastra-ai/mastra/commit/4fc413652866a8d2240694fddb2562e9edbb70df), [`b78e04d`](https://github.com/mastra-ai/mastra/commit/b78e04d935a16ecb1e59c5c96e564903527edddd), [`d10baf5`](https://github.com/mastra-ai/mastra/commit/d10baf5a3c924f2a6654e23a3e318ed03f189b76), [`038c55a`](https://github.com/mastra-ai/mastra/commit/038c55a7090fc1b1513a966386d3072617f836ac), [`182f045`](https://github.com/mastra-ai/mastra/commit/182f0458f25bd70aa774e64fd923c8a483eddbf1), [`7620d2b`](https://github.com/mastra-ai/mastra/commit/7620d2bddeb4fae4c3c0a0b4e672969795fca11a), [`b2365f0`](https://github.com/mastra-ai/mastra/commit/b2365f038dd4c5f06400428b224af963f399ad50), [`9029ba3`](https://github.com/mastra-ai/mastra/commit/9029ba34459c8859fed4c6b73efd8e2d0021e7ba), [`426cc56`](https://github.com/mastra-ai/mastra/commit/426cc561c85ae76a112ded2385532a91f9f9f074), [`00931fb`](https://github.com/mastra-ai/mastra/commit/00931fb1a21aa42c4fbc20c2c40dd62466b8fc8f), [`e473bfe`](https://github.com/mastra-ai/mastra/commit/e473bfe416c0b8e876973c2b6a6f13c394b7a93f), [`b78e04d`](https://github.com/mastra-ai/mastra/commit/b78e04d935a16ecb1e59c5c96e564903527edddd), [`648e2ca`](https://github.com/mastra-ai/mastra/commit/648e2ca42da54838c6ccbdaadc6fadd808fa6b86), [`b65c5e0`](https://github.com/mastra-ai/mastra/commit/b65c5e0fe6f3c390a9a8bbcf69304d972c3a4afb)]:
2850
+ - @mastra/core@0.22.0-alpha.1
15
2851
 
16
2852
  ## 0.16.0-alpha.0
17
2853