@mastra/mcp-docs-server 1.0.0-beta.15 → 1.0.0-beta.17

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 (31) hide show
  1. package/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +41 -41
  2. package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +41 -41
  3. package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +18 -18
  4. package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +41 -41
  5. package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +41 -41
  6. package/.docs/organized/changelogs/%40mastra%2Fconvex.md +40 -0
  7. package/.docs/organized/changelogs/%40mastra%2Fcore.md +179 -179
  8. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +17 -17
  9. package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +49 -49
  10. package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +41 -41
  11. package/.docs/organized/changelogs/%40mastra%2Flance.md +41 -41
  12. package/.docs/organized/changelogs/%40mastra%2Flibsql.md +41 -41
  13. package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +16 -16
  14. package/.docs/organized/changelogs/%40mastra%2Fmcp.md +30 -30
  15. package/.docs/organized/changelogs/%40mastra%2Fmemory.md +49 -49
  16. package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +41 -41
  17. package/.docs/organized/changelogs/%40mastra%2Fmssql.md +41 -41
  18. package/.docs/organized/changelogs/%40mastra%2Fpg.md +45 -45
  19. package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +38 -38
  20. package/.docs/organized/changelogs/%40mastra%2Freact.md +15 -15
  21. package/.docs/organized/changelogs/%40mastra%2Fschema-compat.md +10 -0
  22. package/.docs/organized/changelogs/%40mastra%2Fserver.md +63 -63
  23. package/.docs/organized/changelogs/%40mastra%2Fupstash.md +41 -41
  24. package/.docs/raw/guides/migrations/upgrade-to-v1/storage.mdx +27 -0
  25. package/.docs/raw/reference/client-js/workflows.mdx +15 -0
  26. package/.docs/raw/reference/storage/composite.mdx +223 -0
  27. package/.docs/raw/reference/tools/mcp-server.mdx +9 -0
  28. package/.docs/raw/reference/workflows/run-methods/cancel.mdx +51 -3
  29. package/.docs/raw/reference/workflows/run.mdx +8 -2
  30. package/CHANGELOG.md +15 -0
  31. package/package.json +4 -4
@@ -1,5 +1,49 @@
1
1
  # @mastra/pg
2
2
 
3
+ ## 1.0.0-beta.10
4
+
5
+ ### Patch Changes
6
+
7
+ - Fix missing timezone columns during PostgreSQL spans table migration ([#11419](https://github.com/mastra-ai/mastra/pull/11419))
8
+
9
+ Fixes issue #11410 where users upgrading to observability beta.7 encountered errors about missing `startedAtZ`, `endedAtZ`, `createdAtZ`, and `updatedAtZ` columns. The migration now properly adds timezone-aware columns for all timestamp fields when upgrading existing databases, ensuring compatibility with the new observability implementation that requires these columns for batch operations.
10
+
11
+ - Add storage composition to MastraStorage ([#11401](https://github.com/mastra-ai/mastra/pull/11401))
12
+
13
+ `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.
14
+
15
+ ```typescript
16
+ import { MastraStorage } from '@mastra/core/storage';
17
+ import { MemoryPG, WorkflowsPG, ScoresPG } from '@mastra/pg';
18
+ import { MemoryLibSQL } from '@mastra/libsql';
19
+
20
+ // Compose domains from different stores
21
+ const storage = new MastraStorage({
22
+ id: 'composite',
23
+ domains: {
24
+ memory: new MemoryLibSQL({ url: 'file:./local.db' }),
25
+ workflows: new WorkflowsPG({ connectionString: process.env.DATABASE_URL }),
26
+ scores: new ScoresPG({ connectionString: process.env.DATABASE_URL }),
27
+ },
28
+ });
29
+ ```
30
+
31
+ **Breaking changes:**
32
+ - `storage.supports` property no longer exists
33
+ - `StorageSupports` type is no longer exported from `@mastra/core/storage`
34
+
35
+ All stores now support the same features. For domain availability, use `getStore()`:
36
+
37
+ ```typescript
38
+ const store = await storage.getStore('memory');
39
+ if (store) {
40
+ // domain is available
41
+ }
42
+ ```
43
+
44
+ - 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)]:
45
+ - @mastra/core@1.0.0-beta.16
46
+
3
47
  ## 1.0.0-beta.9
4
48
 
5
49
  ### Minor Changes
@@ -455,48 +499,4 @@
455
499
 
456
500
  ### Major Changes
457
501
 
458
- - Moving scorers under the eval domain, api method consistency, prebuilt evals, scorers require ids. ([#9589](https://github.com/mastra-ai/mastra/pull/9589))
459
-
460
- - 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))
461
-
462
- Primitives that are added to other primitives are also automatically added to the Mastra instance
463
-
464
- - 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))
465
-
466
- - **BREAKING:** Remove `getMessagesPaginated()` and add `perPage: false` support ([#9670](https://github.com/mastra-ai/mastra/pull/9670))
467
-
468
- Removes deprecated `getMessagesPaginated()` method. The `listMessages()` API and score handlers now support `perPage: false` to fetch all records without pagination limits.
469
-
470
- **Storage changes:**
471
- - `StoragePagination.perPage` type changed from `number` to `number | false`
472
- - All storage implementations support `perPage: false`:
473
- - Memory: `listMessages()`
474
- - Scores: `listScoresBySpan()`, `listScoresByRunId()`, `listScoresByExecutionId()`
475
- - HTTP query parser accepts `"false"` string (e.g., `?perPage=false`)
476
-
477
- **Memory changes:**
478
- - `memory.query()` parameter type changed from `StorageGetMessagesArg` to `StorageListMessagesInput`
479
- - Uses flat parameters (`page`, `perPage`, `include`, `filter`, `vectorSearchString`) instead of `selectBy` object
480
-
481
- **Stricter validation:**
482
- - `listMessages()` requires non-empty, non-whitespace `threadId` (throws error instead of returning empty results)
483
-
484
- **Migration:**
485
-
486
- ```typescript
487
- // Storage/Memory: Replace getMessagesPaginated with listMessages
488
- - storage.getMessagesPaginated({ threadId, selectBy: { pagination: { page: 0, perPage: 20 } } })
489
- + storage.listMessages({ threadId, page: 0, perPage: 20 })
490
- + storage.listMessages({ threadId, page: 0, perPage: false }) // Fetch all
491
-
492
- // Memory: Replace selectBy with flat parameters
493
- - memory.query({ threadId, selectBy: { last: 20, include: [...] } })
494
- + memory.query({ threadId, perPage: 20, include: [...] })
495
-
496
- // Client SDK
497
- - thread.getMessagesPaginated({ selectBy: { pagination: { page: 0 } } })
498
- + thread.listMessages({ page: 0, perPage: 20 })
499
- ```
500
-
501
-
502
- ... 3061 more lines hidden. See full changelog in package directory.
502
+ ... 3105 more lines hidden. See full changelog in package directory.
@@ -1,5 +1,42 @@
1
1
  # @mastra/playground-ui
2
2
 
3
+ ## 7.0.0-beta.17
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`b5dc973`](https://github.com/mastra-ai/mastra/commit/b5dc9733a5158850298dfb103acb3babdba8a318), [`af56599`](https://github.com/mastra-ai/mastra/commit/af56599d73244ae3bf0d7bcade656410f8ded37b)]:
8
+ - @mastra/core@1.0.0-beta.17
9
+ - @mastra/schema-compat@1.0.0-beta.4
10
+ - @mastra/client-js@1.0.0-beta.17
11
+ - @mastra/react@0.1.0-beta.17
12
+
13
+ ## 7.0.0-beta.16
14
+
15
+ ### Patch Changes
16
+
17
+ - Fix workflow observability view broken by invalid entityType parameter ([#11427](https://github.com/mastra-ai/mastra/pull/11427))
18
+
19
+ The UI workflow observability view was failing with a Zod validation error when trying to filter traces by workflow. The UI was sending `entityType=workflow`, but the backend's `EntityType` enum only accepts `workflow_run`.
20
+
21
+ **Root Cause**: The legacy value transformation was happening in the handler (after validation), but Zod validation occurred earlier in the request pipeline, rejecting the request before it could be transformed.
22
+
23
+ **Solution**:
24
+ - Added `z.preprocess()` to the query schema to transform `workflow` → `workflow_run` before validation
25
+ - Kept handler transformation for defense in depth
26
+ - Updated UI to use `EntityType.WORKFLOW_RUN` enum value for type safety
27
+
28
+ This maintains backward compatibility with legacy clients while fixing the validation error.
29
+
30
+ Fixes #11412
31
+
32
+ - Add container queries, adjust the agent chat and use container queries to better display information on the agent sidebar ([#11408](https://github.com/mastra-ai/mastra/pull/11408))
33
+
34
+ - 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), [`6cbb549`](https://github.com/mastra-ai/mastra/commit/6cbb549475201a2fbf158f0fd7323f6495f46d08), [`8a73529`](https://github.com/mastra-ai/mastra/commit/8a73529ca01187f604b1f3019d0a725ac63ae55f)]:
35
+ - @mastra/core@1.0.0-beta.16
36
+ - @mastra/client-js@1.0.0-beta.16
37
+ - @mastra/react@0.1.0-beta.16
38
+ - @mastra/ai-sdk@1.0.0-beta.11
39
+
3
40
  ## 7.0.0-beta.15
4
41
 
5
42
  ### Minor Changes
@@ -462,41 +499,4 @@
462
499
 
463
500
  ## Storage Layer
464
501
 
465
- ### BREAKING: Removed `storage.getMessages()`
466
-
467
- The `getMessages()` method has been removed from all storage implementations. Use `listMessages()` instead, which provides pagination support.
468
-
469
- **Migration:**
470
-
471
- ```typescript
472
- // Before
473
- const messages = await storage.getMessages({ threadId: 'thread-1' });
474
-
475
- // After
476
- const result = await storage.listMessages({
477
- threadId: 'thread-1',
478
- page: 0,
479
- perPage: 50,
480
- });
481
- const messages = result.messages; // Access messages array
482
- console.log(result.total); // Total count
483
- console.log(result.hasMore); // Whether more pages exist
484
- ```
485
-
486
- ### Message ordering default
487
-
488
- `listMessages()` defaults to ASC (oldest first) ordering by `createdAt`, matching the previous `getMessages()` behavior.
489
-
490
- **To use DESC ordering (newest first):**
491
-
492
- ```typescript
493
- const result = await storage.listMessages({
494
- threadId: 'thread-1',
495
- orderBy: { field: 'createdAt', direction: 'DESC' },
496
- });
497
- ```
498
-
499
- ## Client SDK
500
-
501
-
502
- ... 4391 more lines hidden. See full changelog in package directory.
502
+ ... 4428 more lines hidden. See full changelog in package directory.
@@ -1,5 +1,19 @@
1
1
  # @mastra/react-hooks
2
2
 
3
+ ## 0.1.0-beta.17
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies:
8
+ - @mastra/client-js@1.0.0-beta.17
9
+
10
+ ## 0.1.0-beta.16
11
+
12
+ ### Patch Changes
13
+
14
+ - Updated dependencies [[`6cbb549`](https://github.com/mastra-ai/mastra/commit/6cbb549475201a2fbf158f0fd7323f6495f46d08)]:
15
+ - @mastra/client-js@1.0.0-beta.16
16
+
3
17
  ## 0.1.0-beta.15
4
18
 
5
19
  ### Minor Changes
@@ -484,19 +498,5 @@
484
498
 
485
499
  ### Patch Changes
486
500
 
487
- - Mutable shared workflow run state ([#8545](https://github.com/mastra-ai/mastra/pull/8545))
488
-
489
- - add tripwire reason in playground ([#8568](https://github.com/mastra-ai/mastra/pull/8568))
490
-
491
- - type fixes and missing changeset ([#8545](https://github.com/mastra-ai/mastra/pull/8545))
492
-
493
- - Convert WorkflowWatchResult to WorkflowResult in workflow graph ([#8541](https://github.com/mastra-ai/mastra/pull/8541))
494
-
495
- - Updated dependencies [[`4783b30`](https://github.com/mastra-ai/mastra/commit/4783b3063efea887825514b783ba27f67912c26d), [`2aee9e7`](https://github.com/mastra-ai/mastra/commit/2aee9e7d188b8b256a4ddc203ccefb366b4867fa)]:
496
- - @mastra/client-js@0.15.1-alpha.1
497
-
498
- ## 0.0.4-alpha.0
499
-
500
- ### Patch Changes
501
501
 
502
- ... 72 more lines hidden. See full changelog in package directory.
502
+ ... 86 more lines hidden. See full changelog in package directory.
@@ -1,5 +1,15 @@
1
1
  # @mastra/schema-compat
2
2
 
3
+ ## 1.0.0-beta.4
4
+
5
+ ### Patch Changes
6
+
7
+ - Fix OpenAI structured output compatibility for fields with `.default()` values ([#11434](https://github.com/mastra-ai/mastra/pull/11434))
8
+
9
+ When using Zod schemas with `.default()` fields (e.g., `z.number().default(1)`), OpenAI's structured output API was failing with errors like `Missing '<field>' in required`. This happened because `zod-to-json-schema` doesn't include fields with defaults in the `required` array, but OpenAI requires all properties to be required.
10
+
11
+ This fix converts `.default()` fields to `.nullable()` with a transform that returns the default value when `null` is received, ensuring compatibility with OpenAI's strict mode while preserving the original default value semantics.
12
+
3
13
  ## 1.0.0-beta.3
4
14
 
5
15
  ### Patch Changes
@@ -1,5 +1,67 @@
1
1
  # @mastra/server
2
2
 
3
+ ## 1.0.0-beta.17
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`b5dc973`](https://github.com/mastra-ai/mastra/commit/b5dc9733a5158850298dfb103acb3babdba8a318)]:
8
+ - @mastra/core@1.0.0-beta.17
9
+
10
+ ## 1.0.0-beta.16
11
+
12
+ ### Patch Changes
13
+
14
+ - Fix workflow observability view broken by invalid entityType parameter ([#11427](https://github.com/mastra-ai/mastra/pull/11427))
15
+
16
+ The UI workflow observability view was failing with a Zod validation error when trying to filter traces by workflow. The UI was sending `entityType=workflow`, but the backend's `EntityType` enum only accepts `workflow_run`.
17
+
18
+ **Root Cause**: The legacy value transformation was happening in the handler (after validation), but Zod validation occurred earlier in the request pipeline, rejecting the request before it could be transformed.
19
+
20
+ **Solution**:
21
+ - Added `z.preprocess()` to the query schema to transform `workflow` → `workflow_run` before validation
22
+ - Kept handler transformation for defense in depth
23
+ - Updated UI to use `EntityType.WORKFLOW_RUN` enum value for type safety
24
+
25
+ This maintains backward compatibility with legacy clients while fixing the validation error.
26
+
27
+ Fixes #11412
28
+
29
+ - Add storage composition to MastraStorage ([#11401](https://github.com/mastra-ai/mastra/pull/11401))
30
+
31
+ `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.
32
+
33
+ ```typescript
34
+ import { MastraStorage } from '@mastra/core/storage';
35
+ import { MemoryPG, WorkflowsPG, ScoresPG } from '@mastra/pg';
36
+ import { MemoryLibSQL } from '@mastra/libsql';
37
+
38
+ // Compose domains from different stores
39
+ const storage = new MastraStorage({
40
+ id: 'composite',
41
+ domains: {
42
+ memory: new MemoryLibSQL({ url: 'file:./local.db' }),
43
+ workflows: new WorkflowsPG({ connectionString: process.env.DATABASE_URL }),
44
+ scores: new ScoresPG({ connectionString: process.env.DATABASE_URL }),
45
+ },
46
+ });
47
+ ```
48
+
49
+ **Breaking changes:**
50
+ - `storage.supports` property no longer exists
51
+ - `StorageSupports` type is no longer exported from `@mastra/core/storage`
52
+
53
+ All stores now support the same features. For domain availability, use `getStore()`:
54
+
55
+ ```typescript
56
+ const store = await storage.getStore('memory');
57
+ if (store) {
58
+ // domain is available
59
+ }
60
+ ```
61
+
62
+ - 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)]:
63
+ - @mastra/core@1.0.0-beta.16
64
+
3
65
  ## 1.0.0-beta.15
4
66
 
5
67
  ### Minor Changes
@@ -437,66 +499,4 @@
437
499
  - Added `express.json()` middleware compatibility for MCP routes
438
500
  - Moved authentication helpers from deployer to `@mastra/server/auth`
439
501
 
440
- **Testing:**
441
- - Added shared MCP route and transport test suites in `@internal/server-adapter-test-utils`
442
- - Added comprehensive MCP endpoint tests for both Hono and Express adapters
443
- - Added GitHub Actions workflow for server adapter CI testing
444
-
445
- - Allow direct access to server app handle directly from Mastra instance. ([#10598](https://github.com/mastra-ai/mastra/pull/10598))
446
-
447
- ```ts
448
- // Before: HTTP request to localhost
449
- const response = await fetch(`http://localhost:5000/api/tools`);
450
-
451
- // After: Direct call via app.fetch()
452
- const app = mastra.getServerApp<Hono>();
453
- const response = await app.fetch(new Request('http://internal/api/tools'));
454
- ```
455
-
456
- - Added `mastra.getServerApp<T>()` to access the underlying Hono/Express app
457
- - Added `mastra.getMastraServer()` and `mastra.setMastraServer()` for adapter access
458
- - Added `MastraServerBase` class in `@mastra/core/server` for adapter implementations
459
- - Server adapters now auto-register with Mastra in their constructor
460
-
461
- - fix(a2a): fix streaming and memory support for A2A protocol ([#10653](https://github.com/mastra-ai/mastra/pull/10653))
462
-
463
- **Client (`@mastra/client-js`):**
464
- - Fixed `sendStreamingMessage` to properly return a streaming response instead of attempting to parse it as JSON
465
-
466
- **Server (`@mastra/server`):**
467
- - Fixed A2A message handler to pass `contextId` as `threadId` for memory persistence across conversations
468
- - Added support for user-provided `resourceId` via `params.metadata.resourceId` or `message.metadata.resourceId`, falling back to `agentId`
469
-
470
- - Add stream data redaction to prevent sensitive information leaks in agent stream API responses. ([#10705](https://github.com/mastra-ai/mastra/pull/10705))
471
-
472
- The `stream` API endpoint now automatically redacts `request` data from stream chunks (`step-start`, `step-finish`, `finish`) which could contain system prompts, tool definitions, and API keys. Redaction is enabled by default and can be disabled for debugging/internal services via `streamOptions.redact`.
473
-
474
- - 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)]:
475
- - @mastra/core@1.0.0-beta.6
476
-
477
- ## 1.0.0-beta.5
478
-
479
- ### Patch Changes
480
-
481
- - Extract routing from @deployer/server into server adapter packages. ([#10263](https://github.com/mastra-ai/mastra/pull/10263))
482
- New packages:
483
- - @mastra/express
484
- - @mastra/hono
485
-
486
- These packages support mastra server routes on express and hono respectively.
487
- Better abstractions will be built on top of these packages in the near future, enabling users to easily attach mastra routes to any existing server framework.
488
-
489
- - Add timeTravel APIs and add timeTravel feature to studio ([#10361](https://github.com/mastra-ai/mastra/pull/10361))
490
-
491
- - Fixed server handler bugs: filter parsing now handles colons in values (timestamps, URLs), dateRange validation now converts JSON strings to Date objects, deleteMessages schema accepts object forms, and added missing responseSchema for legacy stream route ([#10362](https://github.com/mastra-ai/mastra/pull/10362))
492
-
493
- - 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)]:
494
- - @mastra/core@1.0.0-beta.5
495
-
496
- ## 1.0.0-beta.4
497
-
498
- ### Patch Changes
499
-
500
- - Network handler now accesses thread and resource parameters from the nested memory object instead of directly from request body. ([#10294](https://github.com/mastra-ai/mastra/pull/10294))
501
-
502
- ... 4534 more lines hidden. See full changelog in package directory.
502
+ ... 4596 more lines hidden. See full changelog in package directory.
@@ -1,5 +1,45 @@
1
1
  # @mastra/upstash
2
2
 
3
+ ## 1.0.0-beta.9
4
+
5
+ ### Patch Changes
6
+
7
+ - Add storage composition to MastraStorage ([#11401](https://github.com/mastra-ai/mastra/pull/11401))
8
+
9
+ `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.
10
+
11
+ ```typescript
12
+ import { MastraStorage } from '@mastra/core/storage';
13
+ import { MemoryPG, WorkflowsPG, ScoresPG } from '@mastra/pg';
14
+ import { MemoryLibSQL } from '@mastra/libsql';
15
+
16
+ // Compose domains from different stores
17
+ const storage = new MastraStorage({
18
+ id: 'composite',
19
+ domains: {
20
+ memory: new MemoryLibSQL({ url: 'file:./local.db' }),
21
+ workflows: new WorkflowsPG({ connectionString: process.env.DATABASE_URL }),
22
+ scores: new ScoresPG({ connectionString: process.env.DATABASE_URL }),
23
+ },
24
+ });
25
+ ```
26
+
27
+ **Breaking changes:**
28
+ - `storage.supports` property no longer exists
29
+ - `StorageSupports` type is no longer exported from `@mastra/core/storage`
30
+
31
+ All stores now support the same features. For domain availability, use `getStore()`:
32
+
33
+ ```typescript
34
+ const store = await storage.getStore('memory');
35
+ if (store) {
36
+ // domain is available
37
+ }
38
+ ```
39
+
40
+ - 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)]:
41
+ - @mastra/core@1.0.0-beta.16
42
+
3
43
  ## 1.0.0-beta.8
4
44
 
5
45
  ### Minor Changes
@@ -458,45 +498,5 @@
458
498
 
459
499
  - Bump minimum required Node.js version to 22.13.0 ([#9706](https://github.com/mastra-ai/mastra/pull/9706))
460
500
 
461
- - 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))
462
-
463
- - Rename RuntimeContext to RequestContext ([#9511](https://github.com/mastra-ai/mastra/pull/9511))
464
-
465
- - Implement listMessages API for replacing previous methods ([#9531](https://github.com/mastra-ai/mastra/pull/9531))
466
-
467
- - 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))
468
-
469
- - 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))
470
-
471
- - **BREAKING CHANGE**: Pagination APIs now use `page`/`perPage` instead of `offset`/`limit` ([#9592](https://github.com/mastra-ai/mastra/pull/9592))
472
-
473
- 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.
474
-
475
- **Affected APIs:**
476
- - `Memory.listThreadsByResourceId()`
477
- - `Memory.listMessages()`
478
- - `Storage.listWorkflowRuns()`
479
-
480
- **Migration:**
481
-
482
- ```typescript
483
- // Before
484
- await memory.listThreadsByResourceId({
485
- resourceId: 'user-123',
486
- offset: 20,
487
- limit: 10,
488
- });
489
-
490
- // After
491
- await memory.listThreadsByResourceId({
492
- resourceId: 'user-123',
493
- page: 2, // page = Math.floor(offset / limit)
494
- perPage: 10,
495
- });
496
-
497
- // Before
498
- await memory.listMessages({
499
- threadId: 'thread-456',
500
- offset: 20,
501
501
 
502
- ... 2543 more lines hidden. See full changelog in package directory.
502
+ ... 2583 more lines hidden. See full changelog in package directory.
@@ -7,6 +7,33 @@ description: "Learn how to migrate storage-related changes when upgrading to v1.
7
7
 
8
8
  Storage APIs have been standardized with consistent pagination and naming patterns across all methods.
9
9
 
10
+ ## Added
11
+
12
+ ### Storage composition in MastraStorage
13
+
14
+ `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 specialized database for observability.
15
+
16
+ ```typescript
17
+ import { MastraStorage } from "@mastra/core/storage";
18
+ import { MemoryPG, WorkflowsPG, ScoresPG } from "@mastra/pg";
19
+ import { MemoryLibSQL } from "@mastra/libsql";
20
+ import { Mastra } from "@mastra/core";
21
+
22
+ // Compose domains from different stores
23
+ const mastra = new Mastra({
24
+ storage: new MastraStorage({
25
+ id: "composite",
26
+ domains: {
27
+ memory: new MemoryLibSQL({ url: "file:./local.db" }),
28
+ workflows: new WorkflowsPG({ connectionString: process.env.DATABASE_URL }),
29
+ scores: new ScoresPG({ connectionString: process.env.DATABASE_URL }),
30
+ },
31
+ }),
32
+ });
33
+ ```
34
+
35
+ See the [Storage Composition reference](/reference/v1/storage/composite) for more details.
36
+
10
37
  ## Changed
11
38
 
12
39
  ### Required `id` property for storage instances
@@ -145,6 +145,21 @@ await run.resume({
145
145
  });
146
146
  ```
147
147
 
148
+ ### cancel()
149
+
150
+ Cancel a running workflow:
151
+
152
+ ```typescript
153
+ const run = await workflow.createRun({ runId: existingRunId });
154
+
155
+ const result = await run.cancel();
156
+ // Returns: { message: 'Workflow run canceled' }
157
+ ```
158
+
159
+ This method stops any running steps and prevents subsequent steps from executing. Steps that check the `abortSignal` parameter can respond to cancellation by cleaning up resources (timeouts, network requests, etc.).
160
+
161
+ See the [Run.cancel()](/reference/v1/workflows/run-methods/cancel) reference for detailed information about how cancellation works and how to write steps that respond to cancellation.
162
+
148
163
  ### stream()
149
164
 
150
165
  Stream workflow execution for real-time updates: